Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么跨域ajax post不';不行?_Php_Jquery_Ajax - Fatal编程技术网

Php 为什么跨域ajax post不';不行?

Php 为什么跨域ajax post不';不行?,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试从站点2向表单站点1发送数据。但是我犯了错误,答案没有回来,我做错了什么?这是代码ajax POST $.ajax({ url: "site1/form.php", crossDomain: true, type: "POST", data: {a: 'a1'}, contentType: "application/json; charset=utf-8;", async: false, dataType: 'jsonp',

我正在尝试从站点2向表单站点1发送数据。但是我犯了错误,答案没有回来,我做错了什么?这是代码ajax POST

  $.ajax({
  url: "site1/form.php",
    crossDomain: true,
    type: "POST",
    data: {a: 'a1'},
    contentType: "application/json; charset=utf-8;",
    async: false,
    dataType: 'jsonp',
    success: function(data){
        console.log('callback success');
        console.log(data);
    },
    error: function(xhr, status, error) {
        console.log(status + '; ' + error);
    }
});
这是来自site1的表单

$a= $_POST['a']; echo $a;

有什么不对劲吗?我订购的.htaccess中的site1上的标题。

在跨域ajax请求中,现代浏览器在使用方法
选项发出实际请求之前,向域发送
飞行前
请求。如果您定义了自定义标题(在您的情况下,您已经定义了
内容类型
),则它将被阻止。您可以允许远程服务器中的所有请求或特定域接受所有类型的请求(在apache中,您可以在
htaccess
中执行此操作,而在IIS服务器中,出于明显的安全原因,您必须更改
webconfig.xml

。请参阅。默认情况下禁止跨域ajax请求,您可以启用它们,但这是一种风险,因为任何其他站点都可以代表其用户访问您的数据


出于安全原因,请参考答案。

您会遇到什么错误?您会遇到什么错误?您会遇到什么错误?首先,您有一个指向站点的相对url,其次,ajaxed站点是否允许跨域访问?您可以尝试使用curl post吗?