首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel5.2不承认跨域jQuery方法为AJAX

Laravel5.2不承认跨域jQuery方法为AJAX
EN

Stack Overflow用户
提问于 2016-02-04 14:54:13
回答 2查看 2.6K关注 0票数 3

Laravel5.2没有从跨域jQuery load()方法中识别请求为AJAX:

jQuery来自第一站点:

代码语言:javascript
复制
 $('#results').load('http://site2.com/test');

现场控制方法二:

代码语言:javascript
复制
 public function myMethod(Request $request)
    {
        header("Access-Control-Allow-Origin: *");
        header('Access-Control-Allow-Credentials: true');

        if (!$request->ajax()) {
            abort(403, 'Invalid Request');
        }
          // do something
    }

该请求是接收到的,除了不被确认为AJAX请求之外,没有其他问题。从同一个域调用的load()方法被识别为AJAX。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-04 17:37:09

创建一个CORS中间件文件,其中包含“X请求-With”作为允许的标头:

代码语言:javascript
复制
public function handle($request, Closure $next)
    {
        header('Access-Control-Allow-Origin: *');

        $headers = [
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers' => 'X-Requested-With, Content-Type, X-Auth-Token, Origin, Authorization'
        ];

        if ($request->getMethod() == "OPTIONS") {
            return Response::make('OK', 200, $headers);
        }

        $response = $next($request);
        foreach ($headers as $key => $value)
            $response->header($key, $value);
        return $response;
    }

用ajax()替换jQuery load()方法,并向jQuery AJAX调用中添加一个“X请求-带有”头:

代码语言:javascript
复制
$.ajax({
     type: 'GET',
     url: 'http://site2.com/test',
     headers: {'X-Requested-With': 'XMLHttpRequest'},
     success: function (data)
        {
           //do something
        }
});
票数 1
EN

Stack Overflow用户

发布于 2016-02-04 16:10:30

Laravel的HTTP请求类扩展了Symfony类,该类检查请求的X-请求,头被设置为'XMLHttpRequest‘。默认情况下,此标头不会在带有jQuery的跨域请求中发送,除非禁用其跨域保护:

代码语言:javascript
复制
$.ajax({
    url: 'http://example.com/',
    crossDomain: false
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35204248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档