如果你继续使用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);
并且写入日志它不起作用(数据)
答案 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: *");