Я пытаюсь получить какой-то английский перевод Корана из 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);
});
};
После поиска в Интернете выяснилось, что это связано с некоторыми недопустимыми символами в URL-адресе или из-за неправильного прохождения параметра, как показано здесь.
Если ссылка работает в браузере, почему она не работает с методом 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
, удалите /
.
Обратите внимание, что если это клиентская сторона (как кажется), вы можете столкнуться с политикой того же происхождения, которая разрешает только запросы XHR в пределах происхождения, если целевой запрос специально не поддерживает совместное использование ресурсов Cross-Origin и не делится с вашим происхождение (или все происхождение).
Если эта служба предназначена для использования с клиентского кода, у них будет страница, в которой рассказывается, как это сделать (JSONP или аналогичный). Если это не так, вам придется отправить запрос на ваш сервер с этим параметром, и ваш сервер выполнит запрос на quran.com
а затем отправит вам ответ.