【发布时间】:2018-01-04 08:40:55
【问题描述】:
在Vue.js 2 中,我正在使用 axios 进行 ajax 调用。一切正常。但是,当我进一步浏览一页然后返回进行 ajax 调用的页面时,ajax 调用突然返回 html 所以没有 json 对象。
这里会发生什么?当我在邮递员中测试 url 时,我也会收到 json 回复?
我的后端是用 laravel 5.5 制作的。
HTML 响应:
<!DOCTYPE html>\n<!--[if IEMobile]><html class=\"no-js iemobile\" lang=\"nl\"><![endif]-->\n<!--[if lt IE 7 ]><html class=\"no-js ie6\" lang=\"nl\"><![endif]-->\n<!--[if IE 7 ]><html class=\"no-js ie7\" lang=\"nl\"><![endif]-->\n<!--[if IE 8 ]><html class=\"no-js ie8\" lang=\"nl\"><![endif]-->\n<!--[if IE 9 ]><html class=\"no-js ie9\" lang=\"nl\"><![endif]-->\n<!--[if (gte IE 9)|!(IE)]><!--><html class=\"no-js\" lang=\"nl\"><!--<![endif]-->\n<head>\n\t<!-- Google Tag Manager -->\n<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','GTM-TP9MVZN');</script>\n<!-- End Google Tag Manager -->\n <meta data-required=\"true\" http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n\n<title>Televisies </title>\n\n<meta d…", status: 200, statusText: "OK", headers: {…}, config: {…}, request: XMLHttpRequest }
Vue.js 代码如下所示:
Axios.get(url, { params: params }).then((response) => {
console.log(response);
});
在我的 app.js 文件中,我将标题设置为:
Axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
谢谢
【问题讨论】:
-
检查网络标签,看看那里发生了什么。
-
您可能会收到 html 格式的错误。您可以在此处发布响应正文吗?
-
请看我上面的更新。
-
在这里分享你的控制器代码
标签: javascript laravel vue.js axios