首页 » SEO优化 » php66666技巧_api接口中ajax数据请求与数据返回的小坑

php66666技巧_api接口中ajax数据请求与数据返回的小坑

访客 2024-12-01 0

扫一扫用手机浏览

文章目录 [+]

HTTP/1.1 协议规定的 HTTP 要求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。
个中 POST 一样平常用来向做事端提交数据,这里紧张说 POST 提交数据的办法。
HTTP 协议因此 ASCII 码传输,建立在 TCP/IP 协议之上的运用层规范。
规范把 HTTP 要求分为三个部分:状态行、要求头、主体。

数据发送出去,须要做事端解析,一样平常做事端措辞如 php、python 等,以及它们的 framework,都内置了自动解析常见数据格式的功能。
做事端常日是根据要求头(headers)中的 Content-Type 字段来获知要求中的主体是用何种办法编码,再对主体进行解析。
以是说到 POST 提交数据方案,包含了 Content-Type 和主体编码办法两部分。
Cntent-Type有以下常见4种类型:

php66666技巧_api接口中ajax数据请求与数据返回的小坑

(1) application/x-www-form-urlencoded

php66666技巧_api接口中ajax数据请求与数据返回的小坑
(图片来自网络侵删)

这该当是最常见的 POST 提交数据的办法了。
浏览器的原生 form 表单,如果不设置 enctype 属性,那么终极就会以 application/x-www-form-urlencoded 办法提交数据。

(2)multipart/form-data

这又是一个常见的 POST 数据提交的办法。
我们利用表单上传文件时,必须让 form 的 enctyped 即是这个值。

(3)application/json

现在越来越多的人把它作为要求头,用来见告做事端主体是序列化后的 JSON 字符串。
由于JSON的规范,数据不随意马虎出错。

(4)text/xml

它是一种利用 HTTP 作为传输协议,XML 作为编码办法的远程调用规范。

这里须要把稳的是在调用某个接口是,一定要把稳接口要求的办法,如果是post,对应的enctype是什么(即要求时选择Content-Type为哪种类型)

这里以某个笑话接口为例,这里客服端为jquery的ajax,做事端没有展示:

(1)默认Content-Type 为application/x-www-form-urlencoded:

$.ajax({ type: 'post', url: 'http://route.showapi.com/jiekou', dataType: 'json', data: { \"大众showapi_appid\"大众: '666666', //这里须要改本钱身的appid \公众showapi_sign\"大众: '67596029af7b4cb8bc7afe1c6ffd2333', //这里须要改本钱身的运用的密钥secret \"大众page\"大众:\"大众1\公众, \公众maxResult\公众:\公众20\"大众 }, error: function(XmlHttpRequest, textStatus, errorThrown) { alert(\"大众操作失落败!\公众); }, success: function(result) { console.log(result) //console变量在ie低版本下不能用 alert(result.showapi_res_code) } });

在chorme中调试显示:

提交的原始数据

(2)content-type:application/json

var jsonstr={

\"大众showapi_timestamp\"大众: formatterDateTime(),

\公众showapi_appid\"大众: '66666', //这里须要改本钱身的appid

\"大众showapi_sign\"大众: '67596029af7b4cb8bc7afe1c6ffd2333', //这里须要改本钱身的运用的密钥secret

\"大众page\"大众:\"大众1\公众,

\"大众maxResult\公众:\"大众20\"大众

}

$(function(){

$('#create-user').click(function(){

$.ajax({

type: 'post',

url: 'http://route.showapi.com/341-1',

dataType: 'json',

data: JSON.stringify(jsonstr), //转换为json字符串

contentType:\公众application/json\公众,

error: function(XmlHttpRequest, textStatus, errorThrown) {

alert(\公众操作失落败!\公众);

},

success: function(result) {

console.log(result) //console变量在ie低版本下不能用

alert(result.showapi_res_code)

}

});

});

在chorme中调试显示:

客服端提交的原始数据:

补充知识点:

JSON字符串与JSON工具的差异

JSON工具:

var str2 = { \"大众name\"大众: \"大众cool\公众, \"大众sex\公众: \"大众man\公众 };

JSON字符串:

var str1 = '{ \公众name\公众: \"大众haha\"大众, \公众sex\"大众: \公众woman\"大众 }';

js中如何转换:

1、JSON字符串转换为JSON工具

var obj = eval(‘(’ + str1+ ‘)’);//eval()函数是js自带方法

var obj = JSON.parse(str1); //浏览器支持的转换办法

var obj = $.parseJSON( str1);//jQuery办法

var obj = str1.parseJSON();//引用json.js

2、JSON工具转换为JSON字符串

var s=JSON.stringify(str2); //浏览器支持的转换办法

var s=str2.toJSONString(); //引用json.js

作者daydaydream的原创作品,如需转载,请注明出处,否则将深究法律任务

转载地址:https://blog.51cto.com/13238147/2126598

标签:

相关文章

倩女梦岛手游探索虚拟世界的梦幻之旅

游戏产业在我国逐渐崛起,手游市场更是呈现出蓬勃发展的态势。在这其中,倩女梦岛手游凭借其独特的游戏设定、精美的画面以及丰富的剧情,吸...

SEO优化 2025-02-18 阅读0 评论0

伯尔尼机场瑞士心脏的空中门户

伯尔尼机场,位于瑞士首都伯尔尼,是瑞士最重要的国内机场,也是连接瑞士与世界的重要空中门户。自1949年启用以来,伯尔尼机场始终以其...

SEO优化 2025-02-18 阅读0 评论0

佳能相机错误代码E03成因、应对及预防措施

数码相机已经成为人们生活中不可或缺的一部分。在使用过程中,相机出现故障或错误代码的情况也时有发生。本文将针对佳能相机常见的错误代码...

SEO优化 2025-02-18 阅读0 评论0