iOS/AndroidアプリのWin8への移植について質問があります。私は現在、http: //srobbin.github.com/jquery-pageslide/ pageslideの修正バージョンを使用しており、ajax呼び出しを使用して側面にmenu.htmlページをロードしています。AJAX呼び出しは次のようになります...
$.ajax({
url: $str,
dataType: "text",
success: function(data) {
$("#menu").html(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
Win8では、このエラーが発生します。
Exception was thrown at line 8490, column 29 in ms-appx://664ace5f-4774-4928-bc94-ad4650a1ede1/js/jquery-1.8.2.js
0x80070005 - JavaScript runtime error: Access is denied.
これは、jQueryコードで壊れているところです。
if (s.username) {
xhr.open(s.type, s.url, s.async, s.username, s.password);
} else {
xhr.open(s.type, s.url, s.async); //<-------------------
}
私はいくつかの調査を行いましたが、Windows8はローカルのajax呼び出しを許可しないようです。これをWinJS.xhr呼び出しまたはWin8で機能するものに変換するにはどうすればよいですか?
編集-最初の答えの後。
私が探しているのは、$ str(メニューのhtmlを含むファイルのURL、つまりmenu.html)に移動し、html呼び出しを介して$('#menu')にデータを入力することです。menu.htmlからテキストを取得するためにXHRリターンに何を入力し、成功呼び出しでそれをファイルに割り当てることができます。
初めてXHR/AJAXをいじったので、無知を許してください。
編集#2
次のコードのように、WinJS.xhr...を使用するためのjquery呼び出しをやり直しました。
WinJS.xhr({
type: "GET",
url: $str,
responseType: "text",
}).then(function(success){
console.log(success);
},
function (error) {
console.log(error);
}
);
これでも、アクセスが拒否された例外が返されます。このベースJavaコードについて。
req.open(
options.type || "GET",
options.url,
// Promise based XHR does not support sync.
//
true,
options.user,
options.password
);
例外はここに記載されています。
SCRIPT5: Exception is about to be caught by JavaScript library code at line 2332, column 21 in ms-appx://microsoft.winjs.1.0/js/base.js
0x80070005 - JavaScript runtime error: Access is denied.
ファイル名/パス($ str)が間違ったパスに変更された場合、resource_not_foundエラーが発生します。これは自明です。今何をしようかわからない。誰かが解決策を持っていますか?