Javascript Fetch:错误 Unexpected token < in JSON at position 0
Posted
技术标签:
【中文标题】Javascript Fetch:错误 Unexpected token < in JSON at position 0【英文标题】:Javascript Fetch : Error Unexpected token < in JSON at position 0 【发布时间】:2021-01-10 04:04:36 【问题描述】:我正在向我的 Django 视图发送一个 POST 请求。当我在本地运行代码时它可以工作,但是当我在我的 apache 服务器上运行它时,它给了我一个 500 错误。你能帮我吗,拜托!!
这是我的代码:
form.addEventListener('submit', e=>
e.preventDefault()
const baseInput = document.querySelector('#inputbaseform0')
if(baseInput.value !== null)
$('#loadMe').modal('show');
let data =
data['base'] = baseInput.value
data['tiempo'] =tiempo.value
data['otros'] =otros.value
let url = "% url 'cal' %";
fetch(url,
method: "POST",
credentials: "same-origin",
headers:
"X-CSRFToken": document.querySelector('#form0 input').value,
"Accept": "application/json",
"Content-Type": "application/json"
,
body: JSON.stringify(data)
).then(function(response)
return response.json();
).then(function(data)
console.log('ERROR: ', data.error)
baseData = parseFloat(data.base).toFixed(2)
deducir.value = data.porciento//porciento
$('#loadMe').modal('hide');
).catch(function (e)
console.log('Error', e);
$('#loadMe').modal('hide');
)
)
)
【问题讨论】:
意味着你没有 JSON.... 看起来你有 html。查看错误消息,看看服务器在抱怨什么。 它说加载资源失败:服务器响应状态为 500(内部服务器错误)。错误发生在 fetch(url, 我遍历数组查看数据,它们都是字符串。 查看网络请求或服务器日志,看看是什么错误。问题出在服务器上。 【参考方案1】:您的问题不在您的 js 代码中。此代码完全符合您的要求,尝试将响应数据解析为 json。但是你的 django 视图由于某种原因返回了 500 错误页面,而这个页面是 html 以“
日志可以告诉你为什么你的 django 视图会抛出异常。
【讨论】:
以上是关于Javascript Fetch:错误 Unexpected token < in JSON at position 0的主要内容,如果未能解决你的问题,请参考以下文章
在 javascript 中使用 fetch 请求 API 存在 CORS 策略错误
在 iOS 上调用“fetch”时出现 Javascript“TypeError:cancelled”错误
如何使用 fetch 在 javascript 中获取 php 错误消息