Php 使用post方法发送跨域请求

Php 使用post方法发送跨域请求,php,javascript,Php,Javascript,如何使用Post方法将跨域请求从Javascript发送到包含大量请求数据的Php文件 我尝试过使用$.ajax,$.post,但遇到了与提醒post失败相同的问题 这是我的HTML文件[call.HTML],桌面上有Javascript: <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/ libs/jquery/1.3.0/jquery.min.js

如何使用Post方法将跨域请求从Javascript发送到包含大量请求数据的Php文件

我尝试过使用$.ajax,$.post,但遇到了与提醒post失败相同的问题

这是我的HTML文件[call.HTML],桌面上有Javascript:

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js"></script>

</head>
<body>
<script type="text/javascript">
$.ajax({
    type: 'POST',
    url: 'http://localhost/GP/ALternate/file.php',
    crossDomain: true,
    data: '{"l":2}',
    dataType: 'json',
    success: function(responseData, textStatus, jqXHR) {
        var value = responseData.someKey;
    alert(value);
  //document.getElementById('w').innerHTML = value.d;
        },
    error: function (responseData, textStatus, errorThrown) {
        alert('POST failed.');
    }
});
</script>

<div id ='w'></div>
</body>
</html>
以下是我在localhost上的php[file.php]脚本:

<?php
    header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
    header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
    header('Access-Control-Max-Age: 1000');
    header('Access-Control-Allow-Headers: Content-Type');


 $f= $_GET["l"]; 

 echo "{'d' : '".$f."'}";


?> 
如果要向其他域发送POST请求,则必须使用

您需要您的目标服务器添加一些响应头才能使其工作

你可以使用它


您可以使用jQuery库为您处理大多数客户端复杂性。$。发布…

使用jQuery,启用回调。

+1请提供更多信息。你到底想实现什么?请注意,除非服务器允许,否则你无法实现。GetJSON将使用GET方法,而不是POST。@BuddhiP我知道它使用GET,但即使是你也没有提供解决方案。您的回答还说,您可以使用JSONP进行GET。仅供参考,$.post不进行跨域请求。所以,也要检查一下你的答案。如果你知道它使用GET,不要把它作为答案,因为GET/POST在这种情况下有很大的不同,这个问题要特别针对POST提问。诚然,我没有为他写他的程序,但我提到去哪里看,这是正确的。你能解释一下为什么你说$.post不会做跨域请求吗?试着给它一个url:然后看看。post只是一个快捷方法,它取代了$.ajax调用上的方法,并且它可以将post发送到不同的域。CORS是由XHR处理的,而不是由jQuery处理的。如果您知道它使用GET,请不要给出答案,因为GET/POST在这种情况下有很大的不同,而问题是专门针对POST提出的。诚然,我没有为他写他的程序,但我提到去哪里看,这是正确的。你能解释一下为什么你说$.post不会做跨域请求吗?只要给它一个url:'diff.domain.com';看看。post只是一个快捷方法,它取代了$.ajax调用上的方法,并且它可以将post发送到不同的域。CORS由XHR处理,而不是由jQuery处理。