# 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接口安全
- 解決跨域問題
- 自定義實用功能函數