【问题标题】:Jquery AJAX (json) cross domain request and ASP.NET MVCJquery AJAX (json) 跨域请求和 ASP.NET MVC
【发布时间】:2011-08-23 13:04:46
【问题描述】:
在我看来,这是一个老生常谈的主题,但我找不到答案。 =(
我让 jquery ajax 请求
localhost:666 来自 localhost:555 应用程序
$.ajax({
url: "http://localhost:666/request",
dataType: 'json',
timeout: 5000,
success:...
我有 chrome:
XMLHttpRequest 无法加载 http://localhost:666/request。 Access-Control-Allow-Origin 不允许来源http://localhost:555。
问题的解决方法是什么?
【问题讨论】:
标签:
asp.net-mvc
json
jquery
【解决方案1】:
您可以通过创建 XMLHttpRequest 对象或 XDomainRequest 对象在您的网页中发起跨域请求。最终用户的网络浏览器将通过发送一个带有 origin 值的“Origin”标头从域的服务器请求数据。如果服务器以“Access-Control-Allow-Origin: * | Origin”响应,则允许我们访问数据;否则响应将是未经授权的请求。
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
// HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://AllowedDomain.com");
}
这里有一篇文章:Cross-Origin requests and ASP.NET MVC
【解决方案3】:
尝试使用 dataType: 'jsonp' 或 $.getJSON 函数。