我正在开发一个带有 html5、css、js 和 jQuery Mobile 的 phonegap 应用程序,我需要连接到一个已经完成并且可以正常工作的 web 服务。问题是访问控制允许来源和跨域。好像这还不够难,我还必须考虑身份验证,这对于连接到 Web 服务至关重要。我已经完成了我的研究,阅读了很多 tuts,尝试了很多解决方案,其中一些使用 jsonP,这在我看来是最接近工作的。问题是我是新手,没有教程看起来不错,所以希望这里有人可以引导我。webService 是在 asp.net 中构建的,如果需要,我可以完全访问它。我正在使用 AJAX 进行“通话”,但我无法通过 ForeFront 身份验证。
这是 JS+AJAX 代码:
function conteudoProg() {
var webMethod = "myURL";
var credentials = {
username : "myUser",
password : "myPass"
};
$.ajax({
type : "GET",
url : webMethod,
//data: credentials,
contentType : "application/json; charset=utf-8",
dataType : "jsonp",
success : function(msg) {
alert(msg);
},
error : function(e) {
alert(e.status + " " + e.statusText );
}
});
}
如果我将 dataType 从 jsonp 更改为 json,我会收到以下错误:
OPTIONS https://myURL 440 (Login Timeout)
XMLHttpRequest cannot load https://myURL Origin http://127.0.0.1:8020 is not allowed by Access-Control-Allow-Origin.
使用 jsonp,错误如下所示:
Resource interpreted as Script but transferred with MIME type text/html: "https://myURL/CookieAuth.dll?GetLogon?curl=Z2FWSInqueritosZ2FServ…1820135927463_1359737732559Z26_Z3D1359737732605&reason=0&formdir=3". jquery-1.8.2.min.js:2
Uncaught SyntaxError: Unexpected token <