ajax 跨域请求之jsonp

  • 需求
  • 遇到的问题
  • 解决办法

需求

今天项目需要访问一个外部链接获取数据,是跨域的。使用ajax 请求一直提示:
技术分享

遇到的问题

1. 如何使用ajax 跨域请求数据
2. 能不能post请求

解决办法

  1. 经过网上查找资料,能使用jsonp请求跨域数据。
  2. jsonp请求数据只能get,不支持post跨域请求
    使用方法,见代码:
$.ajax({
    type: "post",//这里写post也没用,也是get请求
    url: "url",
    dataType: "jsonp",
    data:"q=xx&categoryId=0&brandId=0",//参数
    jsonp: "callback",
    jsonpCallback:"jsonpCallback",
    success: function(json){
        alert(‘json:‘ + json);
    },
    error: function(){
        alert(‘fail‘);
    }
  });

PHP端代码(即请求url端):

$callback = Input::get("callback"); 
$v1="1";
$v2="2";
$response = "{\"value1\":\"" + $v1 + "\",\"value2\":\"" + $v2 + "\"}";
$call = $callback . "(" + $response + ")";
return $call;

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。