我正在尝试使用以下链接从 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/