jQuery Mobile、jQuery 1.7.2、および PhoneGap を使用して iPhone アプリを構築しています。
このコードを使用してASP.NET RESTful WebサービスからJSONPを取得しようとすると、最初に認証してトークンを取得してから再度送信する必要があるという問題があります。
ここに私の機能があります:
var setToken = function () {
var serverToken = '';
$.support.cors = true;
jQuery('body').ajaxSend(function (evt, xhr) {
xhr.setRequestHeader("Authorization", "Basic " + $.base64.encode(username + ":" + password));
xhr.setRequestHeader('X-Accept', 'application/json');
});
$.getJSON(url + "?jsoncallback=?", null, function (res) {
console.log(res);
serverToken = res.Token;
});
$('body').ajaxSend(function (evt, xhr, ajaxOptions) {
xhr.setRequestHeader('NewToken', serverToken);
});
};
ヘッダーをチェックした 401 (Unauthorized) を取得します。
Request URL:http://192.168.0.44/call/?jsoncallback=jQuery17206244203052483243499_132336710607307&_=1336742104278
Request Method:GET
Status Code:401 Unauthorized
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Host:192.168.0.44
Referer:http://localhost/myMobileApp/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
Query String Parametersview URL encoded
jsoncallback:jQuery17206244203052483243499_132336710607307
_:1336710704278
Response Headers
Access-Control-Allow-Origin:*
Cache-Control:private
Content-Length:0
Date:Fri, 11 May 2012 04:31:52 GMT
Server:Microsoft-IIS/7.5
WWW-Authenticate:Basic
X-AspNetMvc-Version:3.0
X-Powered-By:ASP.NET
setRequestHeader はヘッダーを追加しませんでした。
私は何を間違っていますか?
サーバー側はすでに JSONP を返すように設定されていることに注意してください。ここで変更を加える必要はないと思いますが、何か考えが役立つと思います
前もって感謝します