Jquery 对MVC IIS的AJAX JSON请求语法错误
我有一个MVC4项目,它在VisualStudio2010中运行良好,但是当我将它部署到IIS时,我得到的文本状态是“parsererror”,错误抛出的是“SyntaxeError”(它位于ajax错误方法中)。你知道为什么吗?我正在使用IE8(在浏览器模式IE8和文档模式IE8标准中),但我已经包括了json3.js以防万一。。我已经添加了$.support.cors=true,甚至尝试了crossDomain=true,但在IIS中似乎没有任何效果,有什么建议吗?代码如下:Jquery 对MVC IIS的AJAX JSON请求语法错误,jquery,ajax,asp.net-mvc-4,iis,Jquery,Ajax,Asp.net Mvc 4,Iis,我有一个MVC4项目,它在VisualStudio2010中运行良好,但是当我将它部署到IIS时,我得到的文本状态是“parsererror”,错误抛出的是“SyntaxeError”(它位于ajax错误方法中)。你知道为什么吗?我正在使用IE8(在浏览器模式IE8和文档模式IE8标准中),但我已经包括了json3.js以防万一。。我已经添加了$.support.cors=true,甚至尝试了crossDomain=true,但在IIS中似乎没有任何效果,有什么建议吗?代码如下: JSON_Aj
JSON_AjaxRequest: function (controller, method, parameters, callBackSuccess) {
parameters = JSON.stringify(parameters);
var hasError = false;
var lastErrorMessage = "";
$.support.cors = true;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://myServer/myApplication/" + controller + "/" + method,
data: parameters,
success: function (data, textStatus, jqXHR) {
callBackSuccess(data);
},
error: function (jqXHR, textStatus, errorThrown) {
hasError = true;
lastErrorMessage = errorThrown;
},
complete: function (jqXHR, textStatus) {
if (hasError) {
var errorObject = MyBuildErrorMsgRoutine(lastErrorMessage);
MyDisplayErrorMsgRoutine(errorObject);
}
},
dataType: 'json'
});
多亏它让我走上正轨,问题才得以解决 对于内部VS2010,请使用:
url: "http://localhost:<port>/" + controller + "/" + method,
编辑:请注意,我在这里提到的“SiteName”实际上是IIS中的应用程序名,因此查看IIS树可以看到站点,然后在“Default”(或其他内容)下,然后是应用程序名列表,我在上面称之为SiteName 如果检查对象
jqXHR
,则可以获得有关问题的更多详细信息。您在问题中提到,但您真的使用跨域请求吗?为什么使用跨域请求?使用像“/”+controller+“/”+method”这样的url不是更容易吗?@Claudio在本例中,没有报告任何问题jqXHR@ITFarmer我想你是对的,我不需要跨域请求,我只是列出了我试图让它工作的事情。@ITFarmer谢谢你让我走上正确的轨道!解决了的。。为了让它工作,我将url更改为“/SiteName/ControllerName/MethodName”
url: "/SiteName/ControllerName/MethodName"