需求 遇到的问题 解决办法

需求

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

遇到的问题

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

解决办法

经过网上查找资料,能使用jsonp请求跨域数据。 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');
    }
  });

端代码(即请求url端):

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