外部AJAX请求不起作用

External AJAX request not working

本文关键字:不起作用 请求 AJAX 外部      更新时间:2023-10-09

我正在尝试从外部发送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.
    }
});

如果服务器没有返回JSON数据,并且您不能将其与JSONP一起使用,那么您的最佳选择是服务器端解决方案。

用你喜欢的任何语言创建一个小的PHP脚本或web应用程序,它将向远程服务器发出HTTP请求,检索结果,并将其发送回你向它发出的请求。当然,这必须是本地的,这样你的AJAX JS代码才能在同源策略下使用它。这里有一个桥接/代理脚本的好例子:使用jQuery和Ajax 的远程POST请求

您可以创建简单的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.
    }
});