从jsonp处理回调给了我未定义的错误

时间:2016-02-14 11:54:58

标签: jquery json ajax jsonp

使用jsonp的新手。

现在尝试了2天,尝试了很多不同的事情。

我有一个Web服务器A,它对Web服务器B进行ajax调用。

Web服务器B上的api控制器方法是:

    [HttpGet]
    [HttpPost]
    [Route("LoginRequest")]
    public JsonpResult LoginRequest([FromUri]Login login)
    {
        JsonpResult result = new JsonpResult("hello");
        return result;
    }

我的jquery / ajax是:

window.myCallback = function (data) {

    console.log('ok');
};


       var LogIn = {
            Email: $("#txtEmail").val(),
            MobileNo: $("#txtMobileNumber").val(),
            PinCode: '',
            Message: '',
            Success: false
        };

$.ajax({
    type: "POST",
    crossDomain: true,
    dataType: 'jsonp',
    jsonp: 'callback',
    jsonpCallback: myCallback,
    url: "https://web Server B/api/LoginRequest",
    data: LogIn,
    success: function (data) {
        alert('Success');
        toggleControls(false);
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert('fail');
    }

设置断点如下:

ajax调用

后面的代码被点击

在c#:

中创建的jsonp对象上观察的图像

enter image description here

回调js命中(数据未定义)

返回jsonp对象现在命中c#end

调用ajax中的

错误处理程序,错误:

Uncaught SyntaxError: Unexpected token :

1 个答案:

答案 0 :(得分:0)

要么我是愚蠢的,要么我没有正确阅读这两个例子,但我认为我会指出我的错误是将我的代码放在api控制器中。我把它放在一个普通的控制器中就可以了。我仍然想知道如何对api控制器进行跨浏览器调用,但是现在我很高兴它有效