自分のボックスでWebサービスを呼び出すと、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); }
});
}
})