使用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对象上观察的图像回调js命中(数据未定义)
返回jsonp对象现在命中c#end
调用ajax中的错误处理程序,错误:
Uncaught SyntaxError: Unexpected token :
答案 0 :(得分:0)
要么我是愚蠢的,要么我没有正确阅读这两个例子,但我认为我会指出我的错误是将我的代码放在api控制器中。我把它放在一个普通的控制器中就可以了。我仍然想知道如何对api控制器进行跨浏览器调用,但是现在我很高兴它有效