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

标签 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 (:) 

Angular 方法:

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

        });
    };

在网上搜索后发现这是因为URL中存在无效字符或者没有正确传递参数,如here所示.

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

  • 如何解决这个问题?

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

最佳答案

$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 请求,除非请求的目标明确支持 Cross-Origin Resource Sharing并与您的来源(或所有来源)共享。

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

关于javascript - 从客户端检测到潜在危险的 Request.Path 值 (:),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31118213/

相关文章:

javascript - Azure 移动服务 - 从两个表读取并返回自定义响应对象

javascript - 从下拉列表中选择项目时显示文本框 html php?

javascript - 如何在初始 vue.js/vue-router 加载时加载所有服务器端数据?

javascript - 如何过滤/修改 Backbone 集合本身,而不是获取新数组

angularjs - 在 Angular JS 中更新 URL 而不重新渲染 View

javascript - [[Prototype]] vs prototype : . .有什么区别? (MyCons.__proto__ === MyCons.prototype) 等于 FALSE

javascript - NgMap 设置标记颜色

javascript - 如何在其他地方使用 $http.get 的响应

angularjs - Angular 应用程序如何处理刷新页面以及我们可以在加载指令上使用 $history

javascript - 选择元素上的 Angular ng-repeat 空选项在离开状态时导致错误