Jquery 对MVC IIS的AJAX JSON请求语法错误

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

我有一个MVC4项目,它在VisualStudio2010中运行良好,但是当我将它部署到IIS时,我得到的文本状态是“parsererror”,错误抛出的是“SyntaxeError”(它位于ajax错误方法中)。你知道为什么吗?我正在使用IE8(在浏览器模式IE8和文档模式IE8标准中),但我已经包括了json3.js以防万一。。我已经添加了$.support.cors=true,甚至尝试了crossDomain=true,但在IIS中似乎没有任何效果,有什么建议吗?代码如下:

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"