如何使用Console Chrome从Facebook中的jQuery.post发送和接收数据

时间:2012-04-30 14:05:31

标签: php javascript jquery facebook sdk

如果你继续使用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);

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

2 个答案:

答案 0 :(得分:3)

由于Origin策略,您无法对其他服务器执行远程POST。您的代码只能调用您网站域中的网页,例如:

http://test.com/index.php只能调用http://test.com/的网页。当你开始使用JSONp时,当然有例外情况,但出于你的目的,你根本无法做到这一点。

修改

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

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

答案 1 :(得分:0)

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

header("Access-Control-Allow-Origin: *");