我正在尝试从外部发送一个AJAX请求,但它无法正常工作,它可以在本地运行,但只要我尝试将其链接到外部网页,它就不会做任何事情。
我做了一些阅读,并且我读到他们的东西被称为相同的原始政策,由于安全原因不允许访问。
然后让我读入jsonp,但这给了我一个语法错误
我只是试图显示来自我的数据库的信息,这些信息不是任何格式,例如JSON或XML。
任何帮助将不胜感激
var dataString = 'gender=' + gender + '&Status=' + status + '&Lovethem1=' + lovethem +
'&Lovethem2=' + lovethem2 +'&Arrays=' + vals;
$.ajax({
type: "GET",
url: 'http://transformer.tamar.com/test.php',
jsonp: 'jsonp',
jsonpCallback: "myJsonMethod",
data: dataString,
success: function (result) {
var div = document.getElementById('update');
$('#update').show();
div.innerHTML = result;
//process the json here.
}
});
答案 0 :(得分:0)
如果服务器没有返回JSON数据而您无法将其与JSONP一起使用,那么您最好的选择是服务器端解决方案。
使用您喜欢的任何语言创建一个小型PHP脚本或Web应用程序,它将向远程服务器发出HTTP请求,检索结果并将其发送回您对其所做的请求。这当然必须是本地的,因此您的AJAX JS代码可以在Same Origin策略下使用它。 这里有一个很好的桥接/代理脚本示例:Remote POST request with jQuery and Ajax
答案 1 :(得分:0)
您可以创建简单的PHP脚本以避免相同的原始策略,将其置于本地并对此本地文件执行ajax请求。
例如创建新的php文件:
/test.php
$queryString = $_SERVER['REQUEST_URI'];
echo file_get_contents('http://transformer.tamar.com'.$queryString);
现在你可以在本地做ajax(这个新的php脚本可以完成所有的工作)
var dataString = 'gender=' + gender + '&Status=' + status + '&Lovethem1=' + lovethem +
'&Lovethem2=' + lovethem2 +'&Arrays=' + vals;
$.ajax({
type: "GET",
url: '/test.php',
data: dataString,
success: function (result) {
var div = document.getElementById('update');
$('#update').show();
div.innerHTML = result;
//process the json here.
}
});