使用fetch出现unexpected end of input 解决方法
传统的ajax(即xmlhttprequest)由于使用叫复杂,于是js新推出了fetch来获取后台数据,无需引进jq的$.ajax,也可以使用promise的链式用法去处理回调地狱,着实很方便,在谷歌上已经全部兼容,其他浏览器兼容还需要进一步的优化,推荐文章:
https://segmentfault.com/a/1190000003810652
通过这篇文章,自己写了一个fetch和PHP去测试(获取手机号码的归属地):
php:
<?php
header("Access-Control-Allow-Origin:*");
// 响应类型
header('Access-Control-Allow-Methods:POST');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with, content-type'); function getKey($key, $default = "")
{
return trim(isset($_REQUEST[$key]) ? $_REQUEST[$key] : $default);
} $phone= getKey("phone");
if (!empty($phone)) {
$menuInfo = file_get_contents("https://way.jd.com/jisuapi/query4?shouji=".$phone."&appkey=86d15a3db19f29dccae449f8426a8cb3");
echo $menuInfo;
}
js:
<script>
fetch("http://fm.xiaofany.com/APIpage/phone.php", {
method: "post",
headers: new Headers({
'Accept': 'application/json'
}),
body: JSON.stringify({"phone": 1393622322})
}).then(res => res.json())
.then(data => console.log(data))
.catch(e=>console.log(`错误为${e}`))
</script>
运行以后发生了如下错误:

json意外结束,查找了官方文档,发现在传值的时候做好使用URLSearchParams的方法来传值,更改一下:
<script>
fetch("http://fm.xiaofany.com/APIpage/phone.php", {
method: "post",
headers: new Headers({
'Accept': 'application/json'
}),
body: new URLSearchParams({"phone": 1393622322})
}).then(res => res.json())
.then(data => console.log(data))
.catch(e=>console.log(`错误为${e}`))
</script>
完美:

使用fetch出现unexpected end of input 解决方法的更多相关文章
- 浏览器报错:unexpected end of input 解决方法
直接上报错代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 电脑蓝屏提示unexpected store exception的解决方法
在我们使用电脑的过程中常常会遇到许多问题,对于许多不熟悉电脑的用户常常摸不着头脑,而部分用户在使用电脑时,电脑常常出现蓝屏的情况,并提示你的电脑遇到问题需要重新启动,与此同时,其报告错误代码为“une ...
- A TLS packet with unexpected length was received 解决方法
参考:A TLS packet with unexpected length was received. 系统环境 主系统 OS X,虚拟机 Ubuntu 14.04 64bit. 问题描述 在git ...
- Java Script--------问题错误解决意外的终止输入Uncaught SyntaxError: Unexpected end of input解决办法
错误信息: Uncaught SyntaxError: Unexpected end of input 错误原因: 一般是成对的符号只出现了单只,比如说“”,‘’,{},[]. 解决办法:检查符号是否 ...
- Uncaught SyntaxError: Unexpected end of input 解决办法
Unexpected end of input 的英文意思是"意外的终止输入" 他通常表示我们浏览器在读取我们的js代码时,碰到了不可预知的错误,导致浏览器 无语进行下面的读取 ...
- 移动H5页面,Android手机下,input获取焦点弹出系统虚拟键盘时,挡住input解决方法
最近在写移动端页面的时候,遇到一个问题,在Android手机下,虚拟键盘会将input框遮挡住,具体情况如下图所示: 正常页面显示 IOS端显示情况 Android端显示情况 解决方式: <t ...
- Linux中syntax error near unexpected token 错误提示解决方法
Linux中syntax error near unexpected token ... 错误提示有一般有两种原因: 1)window和Linux下换行符不一致导致 window下的换行和Linux下 ...
- input获取焦点弹出系统虚拟键盘时,挡住input解决方法
Element.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内. <input type="tel" placeholder="输入 ...
- bokeh 中 ValueError: Unrecognized range input: 解决方法
bokeh_data.index =bokeh_data.index.astype(np.str) 将其转换为字符型
随机推荐
- vim自动跳转到引用的函数
安装: yum install ctags 在你代码的根目录下执行:比如/data/www/test/trunkctags -R * 打开文件只能在根目录下打开就可以,比如 vim appl ...
- [镜像]镜像操作losetup
安装完之后查看一下版本 /usr/sbin/debootstrap –version转自:http://blog.csdn.net/cnyyx/article/details/27182833 1.挂 ...
- json拼接转义符
//转义符替 function escapeReplace(Str) { var newStrJson = Str.replace(/\%/g, "%25"); newStrJso ...
- QThread 的使用方法及函数解析
近日,使用QThread,一些问题百思不得其解,看过大牛的文章,恍然大悟啊. 原文 http://hi.baidu.com/dbzhang800/item/c14c97dd15318d17e1f46f ...
- ZooKeeper源码分析:Quorum请求的整个流程(转)
Quorum请求是转发给Leader处理,并且需要得一个Follower Quorum确认的请求.这些请求包括: 1)znode的写操作(OpCode.create,OpCode.delete,OpC ...
- int、long、longlong、float、double、long double的范围
- Sublime Text 3安装清爽主题(著名的Soda Theme)
Sublime Text是一款强大的编辑器,不但拥有众多强大的功能,还拥有很多漂亮的主题以及大量的插件可供配置使用. 本文主要描述Sublime Text 3安装清爽的主题,默认的深色主题Monoka ...
- 如何使用GameObject类发送消息
一.GameObject发送消息的方法 GameObject类有三个方法可以实现发送消息,即SendMessage.BroadcastMessage和SendMessageUpwards.但是它们之间 ...
- 【Java NIO深入研究3】文件锁
1.1概述——文件锁 文件锁定初看起来可能让人迷惑.它 似乎 指的是防止程序或者用户访问特定文件.事实上,文件锁就像常规的 Java 对象锁 — 它们是 劝告式的(advisory) 锁.它们不阻止任 ...
- mysql压缩包的安装、配置、配成windows服务、远程连接及常规问题
1.下载windows安装包 下载地址:mysql-5.7.18 2.配置my.ini [client] port = 3306 # 设置mysql客户端连接服务端时默认使用的端口 [mysql] d ...