post接收返回数据的问题。

easytable 2015-12-25 02:35:04

$.ajax({
type:'post',
datatype:'json',
url:'https://xxx.com',
data:{"id":"1"}});
success:function(response){
....
},
error:function(response){
....
},
complete:function(response){
....
}

向第三方Api接口post数据:
error和complete函数里面返回的是:
status:0
statusText:NetworkError
我用fiddler监测,第一个地址是http://xxx.com然后tunnel to https://xxx.com,返回的是正确的json。
但是我在代码里面接收不到正确的结果,这个是跨域的问题还是什么?该怎么解决。谢谢。
...全文
546 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdashewan 2015-12-28
  • 打赏
  • 举报
回复
引用 11 楼 easytable 的回复:
我放到后端,出异常:the remote name could not be resolved:'xxxx.com' 我很奇怪,勾上fiddler的实时监听,然后再点击按钮,jquery post数据到https,这时能在success回调函数中接收到api返回的正确数据。
域名解析问题,直接写IP或者换能解析的DNS
easytable 2015-12-28
  • 打赏
  • 举报
回复
第三方api是adobe的echosign的服务.
easytable 2015-12-28
  • 打赏
  • 举报
回复
引用 10 楼 xdashewan 的回复:
一般此类跨域的post操作都放在服务端里进行,客户端是禁止的,jsonp也非所有场合都适用。如果有回调地址,那么真正的返回数据会在那个回调地址的请求里获得,并不是在api的请求回复里
我放到后端,出异常:the remote name could not be resolved:'xxxx.com' 我很奇怪,勾上fiddler的实时监听,然后再点击按钮,jquery post数据到https,这时能在success回调函数中接收到api返回的正确数据。
xdashewan 2015-12-28
  • 打赏
  • 举报
回复
一般此类跨域的post操作都放在服务端里进行,客户端是禁止的,jsonp也非所有场合都适用。如果有回调地址,那么真正的返回数据会在那个回调地址的请求里获得,并不是在api的请求回复里
easytable 2015-12-28
  • 打赏
  • 举报
回复
结果返回:the remote name could not be resolved:'xxxx.com'
easytable 2015-12-28
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
你确定你写的是 data:{"id":"1"}}); 这个吗?
不好意思。发帖时手打的代码,没注意,回调函数写在外面了。 代码可以肯定是没这种错误的bug的,打开fiddler监听时,jquery post是能正常获取到返回数据的,关掉fiddler监听,就获取不到,error和complete函数里面返回的是: status:0 statusText:NetworkError。 我post的地址是https,监听到的是第一个是http,然后才跳转的https。 不知道这个是不是跨域的问题,我在后台cs文件里面post,用的http://blog.csdn.net/rongyongfeikai2/article/details/41660987这个博克的代码,结果返回:http://blog.csdn.net/rongyongfeikai2/article/details/41660987
easytable 2015-12-28
  • 打赏
  • 举报
回复
改了下网关和dns服务器,在cs文件中post数据过去,能正常收到结果了。 虽然解决了,但是有一点还是想不通,没改dns服务器之前,打开fiddler的实时监听的时候,jquery的post能正常收到返回结果,难道我的request是经过fiddler走他们的服务器发送出去的?
  • 打赏
  • 举报
回复
你确定你写的是 data:{"id":"1"}}); 这个吗?
  • 打赏
  • 举报
回复
如果代码就是那样的,那么你根本没有回调函数。 我不知道 vs 对于 js 代码语法是否做校验,我们使用 typescript(而基本不用 js),它是会先 build 的,所以不会出现如此大的 bug。
easytable 2015-12-25
  • 打赏
  • 举报
回复
后台post报错:the remote name could not be resolved:'xxxx.com' http://blog.csdn.net/rongyongfeikai2/article/details/41660987
ym231074255 2015-12-25
  • 打赏
  • 举报
回复
说了,AJAX不支持跨域调用接口,一定要异步的话请用JSONP,建议用后台服务端调用接口,HttpWebRequest请求
easytable 2015-12-25
  • 打赏
  • 举报
回复
我将fiddler的监听打开。代码里面就能正常就收到 json.
ym231074255 2015-12-25
  • 打赏
  • 举报
回复
ajax不能跨域(安全性考虑),请参考jsonp

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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