如何在警报中显示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()的文档中说:
>你不需要设置一个jsonpCallback,因为jQuery会生成并处理(使用成功函数随机一个.来自文档的引用:
所以我的代码来了: $(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显式设置为应该调用的函数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |