如何在警报中显示AJAX响应消息?

前端之家收集整理的这篇文章主要介绍了如何在警报中显示AJAX响应消息?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将用户名和密码作为请求参数发送到 AJAX中的服务器并尝试显示响应消息.但是无法显示响应消息.在fiddler中它显示响应消息.但是在浏览器屏幕上它没有显示.请有人帮助我,我错了或需要改变任何东西..
我写得像这样 –
$(document).ready(function () {
  $("#btnCity").click(function () {
    $.ajax({
      type: "POST",url: "http://test.xyz.com/login",crossDomain: true,contentType: "application/json; charset=utf-8",data: { username: "abc",password: "1234" },dataType: "JSONP",jsonpCallback: 'jsonCallback',async: false,success: function (resdata) {
        alert(resdata);
      },error: function (result,status,err) {
        alert(result.responseText);
        alert(status.responseText);
        alert(err.Message);
      }
    });
  });
});

解决方法

TL; DR:我想问题出现在代码的服务器端(我们还不知道).

起初:我不知道为什么它失败了.我已经使用了你的代码并针对公共可用的JSONP API运行它,它返回系统的当前IP并且它有效.

请尝试使用以下网址:http://ip.jsontest.com/.

所以很可能,服务器不会返回对JSONP请求的正确响应.查看开发人员工具中的网络选项卡.使用您当前的代码,服务器的答案应该是这样的:

jsonCallback({'someResponseKeys': 'someResponseValue'});

注意:标题应包含Content-Type:application / javascript!

顺便说一句,即使现在不能解决你的问题 – 这里有一些调整,我想建议你:

>不要将异步设置为false,在jQuery.ajax()的文档中说:

Cross-domain requests and dataType: “jsonp” requests do not support synchronous
operation.

>你不需要设置一个jsonpCallback,因为jQuery会生成并处理(使用成功函数随机一个.来自文档的引用:

This value will be used instead of the random name automatically generated by jQuery. It is preferable to let jQuery generate a unique name as it’ll make it easier to manage the requests and provide callbacks and error handling.

所以我的代码来了:

$(document).ready(function () {
  $("#btnCity").click(function () {
    $.ajax({
      type: "POST",url: "http://ip.jsontest.com/",success: function (resdata) {
        console.log("success",resdata);
      },err) {
        console.log("error",result.responseText);
        console.log("error",status.responseText);
        console.log("error",err.Message);
      }
    });
  });
});

工作example can be found here.

另一个解决方案,如Yonatan Ayalon建议的,可以使用预定义的函数完成,然后将jsonpCallback显式设置为应该调用函数.

原文链接:https://www.f2er.com/ajax/453713.html

猜你在找的Ajax相关文章