在我自己的机器上调用网络服务时,我在 Chrome 中遇到错误。错误是:
Origin http://localhost:52386 is not allowed by Access-Control-Allow-Origin.
我在这里阅读了其他问题和这样的文章:Cross Domain AJAX;但他们倾向于处理 IE 无法正常工作的问题,而我的 Chrome 也有问题。
我将以下内容添加到我的 webservice/Global.asax.cs 中:
protected void Application_BeginRequest(object sender, EventArgs e)
{
//HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
// Changed to this:
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:52386");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:80");
}
这是我的 HTML 代码(我需要将其保存为纯 HTML,后面没有代码):
$(document).ready(function () {
var user = 'testuser';
var pwd = 'abc123';
var auth = 'Basic ' + Base64.encode(user + ':' + pwd);
if ($.browser.msie) {
jQuery.support.cors = true;
$.ajax({
type: "GET",
url: "http://localhost/Website.Webservice/api/TaxDocument",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "text json",
headers: { Authorization: auth },
crossDomain: true,
success: function (data, textStatus, jqXHR) { ProcessOutput(data); },
error: function (jqXHR, textStatus, errorThrown) { alert('Error: ' + textStatus + ' ' + errorThrown); }
});
} else {
$.ajax({
type: "GET",
url: "http://localhost/Website.Webservice/api/TaxDocument",
data: "{}",
contentType: "application/json; charset=utf-8",
crossDomain: true,
dataType: "json",
headers: { Authorization: auth },
success: function (data, textStatus, jqXHR) { ProcessOutput(data); },
error: function (jqXHR, textStatus, errorThrown) { alert('Error: ' + textStatus + ' ' + errorThrown); }
});
}
})