# Api 接口中的常见问题
>[success]API接口开发中的常见问题,主要包括,跨域和安全等。
>
## 1. 跨域问题
>[info]API接品的跨域访问,常遇到的`ajax` 请求接口时,接口有正确的返回值,但是仍然执行,`error`回调。
>出现这这个问题的主要原因就是因为跨域的问题。
>
### 实例:
接口地址:http://api.web.com/api/index/test
接口文件代码如下:
~~~php
<?php
public function test(){
return json_encode(["code"=>'1']);
}
~~~
html文件代码如下:
~~~
<script>
var result = 1;
$.ajax({
url : url,
type : "post",
dataType:'json',
async : false,
success : function(data) {
result = 2;
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
alert(result);
</script>
~~~
>[warning]可以正常返回结果,但是并弹出现`2`。详情原因,可以通过控制台进行查看,这里会有如下的提示信息
>
~~~
XMLHttpRequest cannot load http://www.web.com/api/index/test. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.app.com' is therefore not allowed access.
~~~
### 解决办法:
>[danger]在接口中,指定跨域的域名
>`header("Access-Control-Allow-Origin: http://www.app.com");`
>
在时只要在接口文件中(返回数据前,指定一下域名即可)修改后的代码如下:
~~~
<?php
header("Access-Control-Allow-Origin: http://www.app.com");
public function test(){
return json_encode(["code"=>'1']);
}
~~~
- 前言
- PHP获取服务器信息
- PHP中的常用函数-新手必备知识
- 日期时间相关的函数
- 时区设置
- time函数
- strtotime 时间戳
- date函数
- mktime函数
- 联合使用 date() 和 mktime()
- PHP数据类型相关的函数
- PHP数组相关的函数
- array函数
- 数组的排序
- sort()和rsort()函数
- asort()和arsort()函数
- ksort()和krsort()函数
- array_multisort()函数
- array_reverse函数
- 数组的遍历
- 数组中新增和删除元素
- 数组头部插入和删除元素
- 数组尾部插入和删除元素
- 删除数组中重复的元素
- 删除数组中指定的元素
- 数组的合并
- 随机/打乱已知数组
- range函数
- 数组去除重复
- PHP常用功能函数
- URL地址处理函数
- post/get请求
- PHP字符串相关的函数
- PHP文件系统
- PHP正则表达式
- 正则表达式语法规则
- POSIX扩展的正则表达式函数
- 查找字串函数
- 替换字符串函数
- Perl兼容的正则表达式函数
- PHP中类的应用
- 中文编码
- 关于stdClass
- 变量相关函数
- unset
- PHP数值相关的函数
- 数值取整
- 开发工具与开发环境使用技巧
- sublime
- 常用插件
- Atom
- 常用插件
- 常见问题
- Visual Studio Code
- vscode常用插件
- 编程推荐字体
- MAC下开发常识
- MAC下的常用设置
- MAC下的常用开发工具
- MAC下XAMMP的常见问题
- Apache配置基础
- PhpStrom
- php中的常见问题
- 文件上传相关问题
- API接口中常见问题
- 关于缓冲区问题
- PHP中注意事项
- 条件判断
- PHP文件管理模块
- 文件管理源码
- 文件管理的常用函数
- 文件管理中文乱码处理
- 自定义功能函数
- 文件下载
- PHP常用头信息定义汇总
- 常见PHP网页木马
- 加密算法
- 1. Base58可逆加密
- 2. AES加密/解密
- mysql数据库操作
- 命令行操作Mysql常用令行-查询
- 命令行操作Mysql常用令行-操作
- Mysql使用中的技巧
- 在线数据库管理中常用命令
- sql show命令
- mysql数据库的备份与恢复
- 二进制日志介绍
- 二进制日志常用命令
- ThinkPHP
- 数据迁移
- 常见问题
- 验证码问题
- API接口中的异常处理
- API接口安全
- 解决跨域问题
- 自定义实用功能函数