1

OS X 用のダッシュボード ウィジェットを開発しています。AJAX を使用して、リモート API とやり取りしています。ajax の実装を容易にするために jQuery を使用しています。私が使用している API はログインを必要とし、通常のセッション Cookie を使用します。正常にログインしていますが、ログインしていないために後続の AJAX 呼び出しを実行すると失敗します。ウィジェット/jQuery/ajax がセッション Cookie を保存/使用していないようです。私は何が欠けていますか?

function login(e,p) {
    $.ajax({
        url: url + "sessions.json",
        type: "POST",
        data: {
            login: e,
            password: p
        },
        success: function(res) {
            getProjects();
        },
        dataType: 'json',
        xhrFields: {
            withCredentials: true
        }
    });
}

function getProjects() {
    $.ajax({
        url: url + "projects.json",
        type: "GET",
        data: {
        },
        success: function(res) {

            console.log(res);
        },
        dataType: 'json',
        xhrFields: {
            withCredentials: true
        }
    });
}
4

2 に答える 2

0

回答を共有していただきありがとうございます:

xhrFields: {
  withCredentials: true
}

ただし、私にとっては、Dashcode で機能したのは Widget Attributes > Network/Disk Access > Allow External File Accesscheckedに設定することでした。ブラウザの Cookie を保存する方法を探していましたが、これと「withCredentials」を体系的に切り替えることで、最終的に withCreds は何もしなかったようですが、Allow External File Access が重要でした。

お役に立てれば。

于 2014-01-02T04:26:58.113 に答える
0

他のことを研究しているときに、この問題の解決策に出くわしました。

Phonegap アプリは、認証を使用して Rails 3 アプリと通信します

于 2012-08-24T18:40:50.553 に答える