ASP.NET Web API错误“未捕获的SyntaxError:意外的令牌:”

我对asp.net web api很陌生。 我正在与jquery进行简单的调用,跨域。 一切似乎正常工作,当我甚至检查我回来的结果时,我发现它将json发送回给我,但调用失败并显示“Uncaught SyntaxError:Unexpected token:”错误。 我不确定它为什么失败,谢谢你的帮助。

$.ajax({
    url: 'http://webapidomain.domain.com/api/Register?firstName=' + firstName + '&lastName=' + lastName + '&' + 'email=' + email + '&password=' + password,
    type: 'GET',
    dataType: 'jsonp',
    contentType: 'application/json',
    success: function (result) {
        alert(result);
    },
    complete: function () {
        $.mobile.hidePageLoadingMsg();
    }
});

Web API不支持JSONP开箱即用。 您需要一个JSONP媒体格式化器。 (媒体格式化程序是将数据序列化为特定格式的对象,如JSON或XML。)

里克斯特拉尔在这里有一些代码可能有帮助:http://www.west-wind.com/weblog/posts/2012/Apr/02/Creating-a-JSONP-Formatter-for-ASPNET-Web-API(I haven没有尝试过。)

当您要求提供JSONP时返回JSON的原因是,当Web API无法匹配您请求的类型时,它将返回列表中的第一种格式,默认情况下为JSON。


如果您正在进行跨域调用,那么默认情况下会被许多浏览器通过SAME-ORGIN策略阻止。 如果你需要解决这个问题,你需要使用JSONP(如果你可以修改你所调用的端点产生的输出,即你拥有该域名),否则你需要使用你的web服务器作为代理并连接到那个端点指向并查询您的Web端点以获取相应的数据。

还有一些网站会为你做这件事(作为生成JSONP结果的代理)并产生一个jsonp结果。

链接地址: http://www.djcxy.com/p/45965.html

上一篇: ASP.NET Web API error “Uncaught SyntaxError: Unexpected token :”

下一篇: Unable to complete the .getJSON request?