php - 不同端口上的 jQuery Ajax

标签 php ajax

我的 php 文件位于端口 80(默认端口),而我的 ajax 调用位于端口 8080。

我的 index.html 在 8080 端口

$(document).ready(function(){
$.get("userCheck.php", 
        {"username" : "lazy", "favcolor" : "FFFFFF" },          
        function(data){ alert("Data Loaded: " + data);
});

我的PHP

$user = $_GET["username"];
if($user == "lazy")
    echo "SUCESS";
else
    echo "FAIL";

我用谷歌搜索了一下,大部分都是 JSONP。知道如何将其转换为 JSONP 吗?

有什么办法让它起作用吗?

最佳答案

您可以尝试创建一个带有端口号 (http://myserver:[port]/userCheck.php) 的完整 URL,但它不会工作。 ( Same origin policy )

在不同的端口上执行查询不应该使用 JSONP,因为任何好的 JSONP 框架都会阻止(或者至少应该)。允许这些事情并不是 JSONP 的主要目标,它只是实现的副作用。

但是您可以在与index.html 相同的端口上创建一个“外观”PHP 脚本 ,然后执行对不同 URL 的查询并返回值。这样浏览器就不知道真实的 URL。

index.html (8080) <--> myAjaxFacade.php (8080) <--> userCheck.php (80)

为此,您可以使用 http-post-fields 功能,例如。

示例:

$(document).ready(function(){
$.get("myAjaxFacade.php", 
    {"username" : "lazy", "favcolor" : "FFFFFF", 
     "realUrl": "http://serverwithdifferent:port/userCheck.php" },          
    function(data){ alert("Data Loaded: " + data);
});

myAjaxFacade.php然后将所有其他 POST 数据转发到 $_POST['realUrl']并返回来自该 URL 的响应。

关于php - 不同端口上的 jQuery Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1795183/

相关文章:

php - 将脚本转换为 MySQLi

javascript - php 中表单类型范围 undefined index

php - 单击后如何停用按钮

javascript - URL 中带有 GET 参数的 AJAX POST 请求

javascript - AngularJS 处理多次调用 Promise,但有一些异常(exception)

ajax - AJAX div的错误处理

php - 带有本地网络的 webRTC

php - 执行从 AJAX 响应返回的 javascript 函数 (PHP)

javascript - 如何使用javascript ajax调用下载txt文件

javascript - e.preventDefault 仍然会在浏览器的新选项卡中加载 anchor 链接