zoukankan      html  css  js  c++  java
  • 跨域请求问题+headers 设置+php处理方式【转】

    解决跨域调用服务并设置headers 主要的解决方法需要通过服务器端设置响应头、正确响应options请求,正确设置 JavaScript端需要设置的headers信息 方能实现。

    1.什么是跨域?

    跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。

    例如:a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。注意:跨域限制访问,其实是浏览器的限制。理解这一点很重要!!!

    同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;

    解决办法

    方法一 服务端设置响应头

    header('Access-Control-Allow-Origin:*'); //支持全域名访问,不安全,部署后需要固定限制为客户端网址
    
    header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'); //支持的http 动作
    
    header('Access-Control-Allow-Headers:x-requested-with,content-type'); //响应头 请按照自己需求添加。
    

    方法二:一顿百度,可以用jsonp解决,具体方法步骤如下

    (function($){
    $.ajax({
            type: "post",
            url: "http://localhost:8022/test.json",
            data: $.toJSON(userData),
            dataType: 'jsonp',
            jsonpCallback:'callback',
            success: function(result) {
                alert(result);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.status);
                alert(XMLHttpRequest.readyState);
                alert(textStatus);
            }
        });
    })(jQuery)
    

    原文链接:https://www.jianshu.com/p/0f25e13eef0e

  • 相关阅读:
    剑指offer-删除链表中重复的节点
    剑指offer——二叉树中和为某一值的路径
    动态规划之140 Word Break2
    动态规划之139 Word Break
    动态规划之132 Palindrome Partitioning II
    动态规划之115 Distinct Subsequences
    动态规划之97 Interleaving String
    动态规划之91 decode ways
    vector
    第一篇
  • 原文地址:https://www.cnblogs.com/KillBugMe/p/13153008.html
Copyright © 2011-2022 走看看