我的 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/