jsonp 不执行success方法?

DO_大龄码农 2014-06-06 05:13:08
...全文
2143 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
朋友,我遇见跟你类似的问题了,请问你最后解决了吗。
$.ajax({
        type: 'GET',
        async: false,
        url: 'http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx/getCountryCityByIp?callback=?',
        data:{theIpAddress:host_ip[0]},
        dataType: 'jsonp',
        jsonp: "callback",

        success: function(msg){
            alert(JSON.stringify(msg));
        },
        error:function(XMLHttpRequest, textStatus, errorThrown){
            alert(XMLHttpRequest.status);
            alert(XMLHttpRequest.readyState);
            alert(XMLHttpRequest.responseText);
            alert(textStatus);
            alert(errorThrown);
            console.log(textStatus);
        }
    });
  • 打赏
  • 举报
回复
朋友,我遇到跟你类似的问题了,你那边最终解决了吗。
$.ajax({
type: 'GET',
async: false,
url: 'http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx/getCountryCityByIp?callback=?',
data:{theIpAddress:host_ip[0]},
dataType: 'jsonp',
jsonp: "callback",

success: function(msg){
alert(JSON.stringify(msg));
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(XMLHttpRequest.responseText);
alert(textStatus);
alert(errorThrown);
console.log(textStatus);
}
});

DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复
谢谢#23,问题已经解决,是 HttpContext.Current.Response.Output.Write(callback + "({\"Address\":\"" + backUrl + "\"})"); HttpContext.Current.Response.End();//没有此句是不行的,
Go 旅城通票 2014-06-09
  • 打赏
  • 举报
回复
你的是ws吧。。我这里测试没问题。。 你直接用浏览器访问ajax请求的地址看能得到正确的输出没有
HttpContext.Current.Response.Write(callback + "({\"Address\":\"" + backUrl + "\"})");
HttpContext.Current.Response.End();//加这个试试
DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复
还是会触发error函数,

4--------parsererror-------Error: jQuery17105803503028058931_1402282379191 was not called
DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复
#19 按照你的方法,
return callback + "({" + '"' + "Adderss" + '"' + ':' + backUrl + '"' + "})";
后,客户端的返回是,

和这种方式是一样的,
return callback + "({\"Address\":\"" + backUrl + "\"})";
DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复
HttpContext.Current.Response.Output.Write(callback + "({\"Address\":\"" + backUrl + "\"})");
或者
HttpContext.Current.Response.Write(callback + "({\"Address\":\"" + backUrl + "\"})");
后页面ff接收不到响应,下面是ff响应,
xuzuning 2014-06-09
  • 打赏
  • 举报
回复
C# 没有产生 json 串的方法吗?自己写一个应该也不太难吧? 既然是 C# 那么 return callback + '({"Adderss":"' + backUrl + '"})'; 是不对了,这样应该就可以了
return callback + “({" + ‘“’ + ”Adderss“ + ‘”’ + ‘:’ + backUrl + ‘”’ + “})”;
DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复
c#的apicontrol,
xuzuning 2014-06-09
  • 打赏
  • 举报
回复
不知道你的服务端是什么语言 总之你返回形如 xxxxx({"name":"value","name":"value"}) 这样的串就对了
Go 旅城通票 2014-06-09
  • 打赏
  • 举报
回复
方法返回值改为void,用Response.Write输出 return返回的值
DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复
return callback + "({'Address':'" + backUrl + "'})"; 这种方式,也是不行,客户端还是调用不了sucess,本例子是,ajax直接调用ValidateUserAndCache,没有其他转换,
DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复
#13,这种写法,vs编译都通不过的,
xuzuning 2014-06-09
  • 打赏
  • 举报
回复
写作 return callback + '({"Adderss":"' + backUrl + '"})'; 看看 是谁调用了该方法? 他又做了转义处理吧?
x372563572 2014-06-09
  • 打赏
  • 举报
回复
引用 11 楼 x372563572 的回复:
[quote=引用 10 楼 x372563572 的回复:] 后台返回的那个回调方法名 应该和jsonp:"callbackFn" 一样 也就是 callbackFn(参数)
额 搞错了。。[/quote] 你返回的那个是字符串,应该返回js代码吧
x372563572 2014-06-09
  • 打赏
  • 举报
回复
引用 10 楼 x372563572 的回复:
后台返回的那个回调方法名 应该和jsonp:"callbackFn" 一样 也就是 callbackFn(参数)
额 搞错了。。
x372563572 2014-06-09
  • 打赏
  • 举报
回复
后台返回的那个回调方法名 应该和jsonp:"callbackFn" 一样 也就是 callbackFn(参数)
DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复
这是jsonp请求的服务端,我应该如何返回那?
DO_大龄码农 2014-06-09
  • 打赏
  • 举报
回复

那请问我该如何返回才好啊,谢谢,
DO_大龄码农 2014-06-07
  • 打赏
  • 举报
回复
返回的是字符串格式,最外面是“”,json的name要有双引号,必须是转义的\"啊,要不怎么改json的name加上 “”那?
加载更多回复(6)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧