作者:不雅cf居 | 来源:互联网 | 2023-09-17 10:23
关于 php json接口开发的注意问题
一是注意跨域问题.需要加 Access-Control-Allow-Origin:* http头.(针对于前端浏览器脚本调用接口)
二是如果请求的header里 Content-Type: 是 application/json,则需要用 file_get_contents("php://input");接收.如果用 swoole 框架的话,需要用$request->rawContent()接收.
如果请求header里Contente-Type是 multipart/form-data,或application/x-www-form-urlencoded或application/octet-stream
则需要用 $_POST($_GET)或$_FILES来接收.
Ps :js 代码调用接口示例如下
1.要加contentType: "application/json; charset=utf-8",
2.需要使用JSON.stringify 转换json对象或把对象转为字符形式,如'{"aa":22}'(json两边加单引号)
var submit_sync = function() {
$.ajax({
type: "post",
url: 'add-post-json.php',
async: false, // 使用同步方式
// 1 需要使用JSON.stringify 否则格式为 a=2&b=3&now=14...
// 2 需要强制类型转换,否则格式为 {"a":"2","b":"3"}
data: JSON.stringify({
a: parseInt($('input[name="a"]').val()),
b: parseInt($('input[name="b"]').val()),
now: new Date().getTime() // 注意不要在此行增加逗号
}),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
$('#result').text(data.result);
} // 注意不要在此行增加逗号
});
}
PHP请求接口的代码如下:
'value');
curl_post('http://192.168.6.76:9523/?op=test', $data, true);
开发中一般不要用前端代码去调用非本系统的接口地址.
参考 https://blog.csdn.net/wangjun5159/article/details/47781443
https://blog.csdn.net/wangjun5159/article/details/49644507
转载请注明:来自Lenix的博客 地址#5064
最后更新于 2018年10月2日