【问题标题】:ajax post external php file return always falseajax 发布外部 php 文件总是返回 false
【发布时间】:2015-05-28 19:09:05
【问题描述】:

我的 ajax 代码是:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
    $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: "http://www.mp3-y.com/yt_output.json?vid=d9o8FCl4HOk",
            dataType: "json",
            success: function(msg) {
            alert("Success");
            },
            error: function(xhr, ajaxOptions, thrownError) {
                alert("error");
            }

        });
</script>

PHP 代码是:

header('Content-Type: application/json');
$arr=array("Download" => "http://www.exemple.com/file");
$json = json_encode($arr);
print_r($json);

当我调用外部 php 文件时,我总是出错!

【问题讨论】:

  • 你看过浏览器控制台中的请求/响应吗?
  • 不,我无法测试您的代码。 按 F12 键,准备大吃一惊。”
  • 打开开发者工具,看看你在控制台窗口中得到了什么错误信息。

标签: php jquery ajax json post


【解决方案1】:

浏览器不允许您的 javascript 向另一个域 (mp3-y.com) 发出 XHR 调用,除非它们通过指定特定标头来允许它。研究“同源政策”。

如果您可以更改您的 php 代码,您可以添加此标头以允许任何人调用此 API:

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

【讨论】:

  • 如果你的 ajax 代码在同一个域上运行,那么我的回答是不相关的。
  • 我正在添加这一行,但没有任何改变
  • 我编辑了代码以包含所有域 (*),请重试。
  • 感谢您的回复,但在添加此行后没有任何改变
猜你喜欢
  • 2017-08-02
  • 2013-12-25
  • 2020-02-10
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 2014-08-26
  • 2012-08-23
  • 2016-02-26
相关资源
最近更新 更多