外部AJAX请求无效

时间:2013-11-25 14:46:42

标签: javascript jquery ajax

我正在尝试从外部发送一个AJAX请求,但它无法正常工作,它可以在本地运行,但只要我尝试将其链接到外部网页,它就不会做任何事情。

我做了一些阅读,并且我读到他们的东西被称为相同的原始政策,由于安全原因不允许访问。

然后让我读入jsonp,但这给了我一个语法错误

我只是试图显示来自我的数据库的信息,这些信息不是任何格式,例如JSON或XML。

任何帮助将不胜感激

Jquery的

    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.
    }
});

2 个答案:

答案 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.
    }
});