2

我在 MVC4 中创建了 REST API,当我编写来自提琴手的请求时它工作正常。但是在我的应用程序中,我需要通过 jsonp 调用,因为它会跨域请求。但是当我调用这个服务时,它给了我如下所示的错误:

Jquery JsonP 调用..

$.ajax({
        type: "POST" ,
        url: "http://127.0.0.1:81/api/sites/GetDomainAvailability?apikey=asfasfdsf&callback=?",
        data: { SubDomain: subDomain, ParentDomain: parentDomain, ResellerId: resellerId },
        cache: false,
        contentType: "application/json; charset=utf-8",
        success: function (response) {
            if (callback)
                callback(response.d);
        },
        error: function (response) {
            if (callback)
                error(response.d);
        },
    });

错误: 在此处输入图像描述

4

1 回答 1

2

现在你没有做 JSONP。它仍然是 POST 请求。要使其成为 JSONP,您只需添加dataType: "jsonp"到您的$.ajax()调用中。您还可以删除一些其他冗余参数,如内容类型和“回调”参数(但这是可选的)。因此,您的代码应如下所示:

$.ajax({
    url: "http://127.0.0.1:81/api/sites/GetDomainAvailability?apikey=asfasfdsf",
    data: { SubDomain: subDomain, ParentDomain: parentDomain, ResellerId: resellerId },
    datatype: "jsonp",
    cache: false,
    success: function (response) { /* ... */ },
    error: function (response) { /* ... */ },
});

也准备好,您的请求将被转换为 GET 请求,看起来像 /GetDomainAvailability?apikey=key&callback=jquery123&SubDomain=sss&ParentDomain=ppp&ResellerId=123&_=4398572349857

因此,为此准备您的服务器端代码。

于 2012-11-13T15:58:56.743 回答