jquery jsonp真的是支持post吗?

最近在做一个页面需要用异步获取数据,接口需要传递参数才能拿到数据!
考虑过vue,angular...什么的,想了想,就一个分享的单页面懒得用这些框架了,就用jquery算了!
但是...怎么都拿不到数据,提示404错误(服务端做了跨域处理)
报错:

jquery jsonp真的是支持post吗?_第1张图片
bug.png

再贴下代码:

            $.ajax({
                url:'https://xxx.xxxx.com/api/homes/search/p/1',
                data:{keyword:123},
                type:'POST',
                dataType:'jsonp',
                jsonp:"jsonpcallback",
                async:true,
                cache:false,//缓存数据
                beforeSend:function(){
                    console.log('数据拉取中...')
                },
                success:function(res){
                    console.log(res);
                },
                error:function(err){
                    console.log(err)
                },
                complete:function(XMLHttpRequest, textStatus){
                    console.log('数据加载完成') 
                }
            })

再上面的报错信息中我们也看到了,就是写的是post方式,其实最终都是用的get方式传递的

所以你即使设置为POST,datatype为jsonp时 POST请求同样会被转化成GET。

难道是JSONP不支持POST方式发起请求吗?
找到这篇文章:http://www.nowamagic.net/librarys/veda/detail/224
从文中可以看出,其实使用特殊的方法也是可以支持POST的,不过太过繁琐。作者举的例子为:动态创建iframe方式POST跨域。
我想说的是,如果要想支持POST方式的JSONP很难,咱就别难为自己了,大不了和后台打一架也要把接口改了

你可能感兴趣的:(jquery jsonp真的是支持post吗?)