我尝试在JQUERY上向RESTFULL服务发出PUT请求,当尝试使用localhost(http:// localhost / Domain)请求url时请求工作。但是当将url更改为某个ip(http://192.123.32.3)时,服务器上的操作不会触发。
$.ajax({
type: "PUT",
url: urlOperation,
dataType: "json",
contentType: "application/json",
data: $.toJSON(submitVote), success: function (result)
{
alert('Great ...');
}
});
我尝试解决这个问题,在Application_beginRequest事件中添加put权限:
private void EnableCrossDmainAjaxCall()
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
}
在阅读了jquery.Ajax文档之后,我尝试添加了属性crossDomain ='true'而没有成功。
谢谢和问候
答案 0 :(得分:1)
浏览器将尽其所能阻止跨域请求。您可以将iframe用于ajax请求,也可以使用运行该页面的服务器来代理请求。
希望有所帮助,也许你可以查看jQuery如何处理crossDomain ='true',如果没有涉及iframe,它将无法在所有浏览器上运行。