ThinkPHP 5.1.37 開發跨域問題解決

1.查閱 ThinkPHP 的文檔,文檔給出的例子:php

Route::get('new/:id', 'News/read')
    ->ext('html')
    ->allowCrossDomain();

只須要在路由的尾部添加 allowCrossDomain() 便可實現跨域請求,因此我在每一個須要進行跨域訪問的路由後都添加了 ->allowCrossDomain(),通常的跨域問題得以解決。可是有的路由仍是跨域失敗?html

另外的問題

2.通過百度搜索,找到緣由是因爲前端的 AJAX 請求一般須要攜帶 token 驗證,因此還須要將 token 添加到 Access-Control-Allow-Headers前端

文檔的例子是:thinkphp

Route::get('new/:id', 'News/read')
    ->ext('html')
    ->header('Access-Control-Allow-Origin','thinkphp.cn')
    ->header('Access-Control-Allow-Credentials', 'true')
    ->allowCrossDomain();

按照上面的方法添加 ->header('Access-Control-Allow-Headers','token') ->allowCrossDomain();代碼以下:跨域

Route::get('your route', 'News/read')
    ->header('Access-Control-Allow-Headers', 'token')
    ->allowCrossDomain();

ok,跨域問題解決;thinkphp5

相關文章
相關標籤/搜索