关于网友提出的“ajax跨域请求'HTTPS://'报'invalid POST data'”问题疑问,本网通过在网上对“ajax跨域请求'HTTPS://'报'invalid POST data'”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:ajax跨域请求'HTTPS://'报'invalid POST data'
描述:今天在做微信摇一摇的时候请求的接口都报invalid POST data
不知为啥
微信的批量查询页面统计数据接口:
接口调用请求说明:
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/shakearound/statistics/pagelist?access_token=ACCESS_TOKEN
POST数据格式:json
POST数据例子:
{
"date": 1425139200,
"page_index":1
}
这是我的请求:
$.ajax({
type: 'POST',
url: 'https://api.weixin.qq.com/shakearound/statistics/devicelist?access_token=',
data: {
"date": 1451199351423,
"page_index": 1
},
dataType: 'jsonp',
success: function(data) {
alert(JSON.stringify(data));
}
})

// 2015.12.28 17:02补充
现在改成服务端请求了,结果返回parse json failed.
解决方案1:貌似直接ip地址会有跨域的问题。有域名应该就可以了。
解决方案2:首先jsonp是不支持post,其次js跨域访问数据需要服务端的支持:即服务端响应jsonp,或者在response中添加 Access-Control-Allow-Origin 的header,所以如果是调用微信接口的话,js是无法调用的!
解决方案3:找到原因了,换成服务请求了,然后请求微信的接口必须是json
串才行~
解决方案4:Jsonp 请求是无法使用POST 方法的!即使你指定为post, 现在报错 无法格式化成 json 说明数据是返回了的!
解决方案5:post用jsonp也不行!要不你就在你服务提供者动手..要不你就nginx反向代理.假装在同域..或者自写服务中转.不过没有nginx方便
解决方案6:不要直接跨域请求。
前端ajax直接请求到自己的后台服务器,然后后台服务器再去请求微信的系统,自己的服务器做一次中转就好了。
不要直接在前端提交到微信服务器。
解决方案7:使用jsonp
解决方案8:jsonp
的话 那就没法post
!
解决方案9:在浏览器不允许跨域请求数据的,我记得用jsonp的方式好像还需要一个callback的吧?也就是要传一个回调函数名,并且微信那边提供跨域支持
以上介绍了“ajax跨域请求'HTTPS://'报'invalid POST data'”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1056410.html