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

Sye*_*idi 0 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 (:) 
Run Code Online (Sandbox Code Playgroud)

角度方法:

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);

        });
    };
Run Code Online (Sandbox Code Playgroud)

在互联网上搜索后,我发现,这是因为在网址一些无效字符,或者因为不通过正确喜欢所示的参数在这里.

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

  • 我怎样才能解决这个问题?

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

T.J*_*der 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,删除/.

请注意,如果这是客户端(看起来如此),您可能会遇到同源策略,该策略仅允许源中的XHR请求,除非请求的目标特别支持跨源资源共享并与共享起源(或所有起源).

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