Javascript POST到PHP在本地工作,在外部失败

时间:2018-05-31 12:25:57

标签: javascript php jquery http-post

这是我所拥有的非常简单的代码,它可以在我的网站上运行(如果链接到php只是" /phpcode.php",但是如果我将javascript请求放在另一个站点上则无法检索数据并调用完整链接。 我在使用godaddy。 我是初学者,并没有想到在哪里寻找解决方案或解决它。

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



 $.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>
&#13;
&#13;
&#13;

这里是javascript页面的完整代码

&#13;
&#13;
public static bool IsValidFilename(string filename)
{
    try
    {
        File.OpenRead(filename).Close();
    }
    catch (ArgumentException) { return false; }
    catch (Exception) { }
    return true;
}
&#13;
&#13;
&#13;

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

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

header("Access-Control-Allow-Origin: *");
<?php phpcode.php之后

,这将使您的代码成为:

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

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

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

答案 1 :(得分:0)

好的家伙,它已经解决了。 第一个问题是php代码被放入http:site并且调用来自https:sites。 第二 - 特定网站无法做警报(数据),但响应是存在的。谢谢@stefan提醒检查回复。用额外的变量解决了它。

感谢您的帮助!