【发布时间】:2013-09-27 20:36:21
【问题描述】:
我使用的是 IE 10、Firefox 24、Chrome 29。
我有一个在 ASP.NET MVC 4 (IIS 8) 上运行的服务器,控制器中有一个简单的功能:
[HttpPost]
public ActionResult Register(string PhoneNumber, string DisplayName)
{
// Some commented code here ...
ViewBag.Message = "Working!";
return View();
}
视图如下:
@{
ViewBag.Title = "Register";
}
@ViewBag.Message
Ajax 调用如下所示:
$.ajax({
type: "POST",
url: "http://localhost:1283/home/Register",
data: {
phoneNumber: "123",
displayname: "Miko"
},
success: function (response) {
alert("In success: " + response);
},
error: function (result) {
alert('In error: '+ result);
}
})
在所有浏览器中,都会进行 AJAX 调用,服务器中的 Register() 会被触发,但完成后,此代码在 Internet Explorer 中运行良好,但使用 Firefox\Chrome 时总是会出现“error()”。
如何使这些功能也适用于 Firefox 和 Chrome?
谢谢。
【问题讨论】:
-
你知道错误是什么吗?也尝试在 ajax 设置中给出
dataType:"html"和contentType:"application/json"。 -
url: "localhost:1283/home/Register" ,可能是跨站请求造成的,看看chrome中的console吧。我觉得你应该把前端和服务设置在同一个主机上。跨度>
-
(PSL) 我不知道是什么错误。我已经在 AJAX 调用中添加了这两行,但仍然无法正常工作。
-
(Mithril) 在 Chrome 的控制台中我收到此消息:XMLHttpRequest cannot load localhost:1283/home/Register。 Access-Control-Allow-Origin 不允许 Origin null。
-
@MikoDiko 您的问题是域不匹配。因此尝试将请求标头中的来源设置为响应标头中的来源或将其设置为 *.
标签: jquery ajax asp.net-mvc internet-explorer firefox