从客户端检测到潜在危险的Request.Path值(:)

时间:2015-06-29 14:24:33

标签: javascript angularjs

我正尝试使用以下链接从quran.com获取一些大学项目的古兰经英语翻译:

http://quran.com/quran/ajax?s=1&sA=1&eA=8&l=12C6

在浏览器中输入此链接会返回正确的结果但是当我尝试在我的Angular方法中使用此链接时,我收到错误:

A potentially dangerous Request.Path value was detected from the client (:) 

角度方法:

Qt.Link = "http://quran.com/quran/ajax?s=1&sA=1&eA=8";
Qt.GetTranslation = function () {
        $http.get("/"+Qt.Link).success(function (result) {
            Qt.display = result;
        }).error(function (data) {
            toastr["error"](data);

        });
    };

在互联网上搜索后,我发现这是因为网址中的某些无效字符,或者因为没有正确传递参数,如here所示。

  • 如果链接在浏览器中有效,为什么它不适用于Angular方法?

  • 我该如何解决这个问题?

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:5)

$http.get("/"+Qt.Link)尝试加载的内容是:

/http://quran.com/quran/ajax?s=1&sA=1&eA=8

领先/表示它会尝试从您的服务器加载

要获取http://quran.com/quran/ajax?s=1&sA=1&eA=8,请移除/

请注意,如果这是客户端(看起来像是这样),您可能会遇到Same Origin Policy,它只允许源中的XHR请求,除非请求的目标特别支持{{3}并与您的来源(或所有来源)共享。

如果要从客户端代码中使用该服务,他们将会有一个页面告诉您如何操作(JSONP或类似代码)。如果不是,则必须向您的服务器发送查询,并将其作为参数发送给服务器,然后向quran.com发送请求,然后送你回复。