zoukankan      html  css  js  c++  java
  • ajax--跨域问题及三种简单的解决方案

    什么是跨域?

    地址不同,不能相互的去访问资源。

     http:// www.bailiban.com : 8888 /img/01.jpg?name=jack
     协议  子域名    主域名      端口号 请求的资源路径
     协议,子域名,主域名,端口号,只要有一个不同就是跨域,资源就不能通过ajax进行访问

    解决跨域的三种简单方法:

    1.代理服务器

    用一个新的服务器把需要使用的代码都放在一起就可以正常访问。

    2.设置请求头

    在PHP页面中添加如下代码:

    header("Access-Control-Allow-Origin: *"); //域名
    header(
    "Access-Control-Allow-Method: POST,GET"); //传递方式

    3.jsonp

    3.1什么是jsonp:

    jsonp是一种数据传输的方式或者说非强制性的协议

    3.2jsonp和ajax的实质:

    ajax的核心是通过xmlHttpRequest获取非本页内容

    jsonp的核心是动态添加script标签调用服务器提供的js脚本

    3.3jsonp使用注意:

    只能传递 通过GET 方式传递的数据

    3.4jsonp使用代码:

    js版:

    function addScript(src){
        var script = document.createElement("script");
        script.src = src;
        document.body.appendChild(script);
    }

    jQuery版:

    $.ajax({
         type: "GET",
         url: "http://192.168.9.154:3000/jsonp",
         dataType: "jsonp",
         success: function(data){
         console.log(data)
         }
    });
  • 相关阅读:
    memcached stats 命令
    C# 压缩文件 ICSharpCode.SharpZipLib.dll
    复选框的全选与反选
    Internet Explorer 9 已安装在此系统上
    C# AES 加密与解密
    C# List<T> 泛型
    C# DataTbale详细操作
    C# 日志系统 log4net 配置及使用
    Web.config配置文件详解
    字符串比较
  • 原文地址:https://www.cnblogs.com/ddjps/p/10415052.html
Copyright © 2011-2022 走看看