我正在调查本地(file:// access)html应用程序的.NET WCF域服务的跨域使用情况。该应用程序正在使用jQuery进行AJAX调用。jQuery.Ajax“访问被限制的URI被拒绝”的解释?
如果服务器上没有身份验证(即使用匿名身份验证),我已经使用CORS“Access-Control-Allow-Origin:*”头以JSON格式成功检索了JSON格式的数据,并且没有头。
现在我试图了解身份验证和CORS头与JSON(而不是JSONP)格式数据的位置时的行为。
下面的jQuery代码会向服务器发送一个请求,服务器又会响应“HTTP/1.1 401 Unauthorized”。
$.ajax({
url: myUrl,
dataType: 'json',
cache: false,
complete: function() { /* do stuff */ },
timeout: 5000,
data: myData
});
下面的jQuery代码不会向服务器发出请求,并立即抛出一个异常“访问受限制的URI被拒绝”,代码1012
$.ajax({
url: myUrl,
dataType: 'json',
cache: false,
complete: function() { /* do stuff */ },
timeout: 5000,
username: "chris",
password: "password",
data: myData
});
我的理解,并期望第一种情况。任何人都可以向我解释第二种情况下的例外情况吗?我本来希望至少可以提出这个请求。
编辑:Grrr,这是在FF 10.0.2。 Chrome似乎按照我的预期行事,这是FF问题吗?
我意识到我可以用jQuery.ajax回调函数之一来捕获错误,或者使用带有JSONP的回调函数 - 那是您的意思吗?我的问题真的只是为什么(也许只是Firefox)没有提出请求,而是在这种情况下引发错误。 – Chris 2012-02-28 11:26:49