0

如果你在 facebook 上运行这个脚本到控制台:

window.boxbigG = new Dialog();
mainDlg.showLoading();  
var js, ref = document.getElementsByTagName('script')[0];
    js = document.createElement('script');
    js.async = true;
    js.src = "http://code.jquery.com/jquery-1.7.2.min.js";
    ref.parentNode.insertBefore(js, ref);

jQuery.post("http://google.it", {
            q: "test"
        }, function (data) {
            boxbigG.setBody(data);
            boxbigG.show();
        });

为什么不工作?

PS:不允许安全内容 http,因为 facebook 使用 https。

-/-/-/-/-/-/-/-/-/-/-/-/-

我试着放进去

console.log(data) 

function(data){}

header('Content-Type: application/json');
json_encode($data_out_array); exit;

但不要返回任何东西。

我还添加了一个简单的登录 php 文件

$fp = fopen('log.txt', 'a');
fwrite($fp, $_POST[q]."\n");
fclose($fp);

并且日志被写入它不起作用(数据)

4

2 回答 2

3

由于 Origin 策略,您不能对另一台服务器进行远程 POST。您的代码只能调用您网站域内的页面,例如:

http://test.com/index.php只能从 调用页面http://test.com/。当您开始使用 JSONp 时当然有例外,但出于您的目的,您根本不能这样做。

编辑:

不要忘记在任何返回您希望以 JSON 形式返回的内容的 PHP 回显之前包含以下行:

header('Content-Type: application/json');
json_encode($data_out_array); exit;
于 2012-04-30T14:09:56.263 回答
0

已解决:在 php 文件中我添加了这个

header("Access-Control-Allow-Origin: *");
于 2012-05-02T16:49:01.033 回答