首页 > 解决方案 > Javascript POST 到 PHP 在本地工作,在外部失败

问题描述

这是我拥有的非常简单的代码,它适用于我的网站(如果指向 php 的链接只是“/phpcode.php”,但如果我将 javascript 请求放在另一个网站上并调用完整链接,则无法检索数据。我正在使用godaddy. 我是初学者,完全不知道在哪里寻找解决方案或排除故障。

这是 PHP 端(phpcode.php 的完整代码):

<?php 
$val = 'apple'; 
echo json_encode($val);
?>

这是javascript请求:

 $.post(
    		"http://website.com/phpcode.php",function(data){
    			alert(data);
    },
    		"json");

这是javascript页面的完整代码

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){  
       $.post(
		"http://website.com/phpcode.php",function(data){
			alert(data);
},
		"json");
    				});
			   });
</script>
</head>
<body>

<button>TEST POST</button>

</body>
</html>

谢谢你的帮助。

标签: javascriptphpjqueryhttp-post

解决方案


这可能是导致错误的原因。添加行

header("Access-Control-Allow-Origin: *");

<?phpin之后phpcode.php,这将使您的代码:

<?php 
    header("Access-Control-Allow-Origin: *");

    $val = 'apple'; 
    echo json_encode($val);
?>

将来,如果您包含任何可以看到的错误消息/警告,您将更有可能从您的问题中获得更好的答案。您经常可以在 javascript 控制台中看到这些内容。[ctrl] + [shift] + [i]在 chrome 中,然后转到console选项卡。


推荐阅读