• jquery实现跨域提交


    简介:这是jquery实现跨域提交的详细页面,介绍了和php,json, jsonp, jquery, javascript, php jquery实现跨域提交有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=344674' scrolling='no'> 原文地址:http://www.luocheng.cn/article-view-246.html

    我们在运营一个产品的时候往往会遇到这样那样的表单提交,如客户数据收集、申请加盟、意见反馈等,由此我们开发了这样一个产品,可以理解为万能型数据收集平台,不难想到,我们在前端会遇到跨域的问题,比如 www.a.com 需要提交数据到www.app.com,以前我们用服务端代理来解决跨域问题,上次遇到一台windows服务器,实现代理比较麻烦,于是想到了jquery实现。他有两种方法,getJSON和getScript.

    getScript我常用来获取服务端数据,getJSON可用于提交信息,其实两者均是实现跨域提交。

    在jQuery1.3.2中,您可以通过使用JSONP形式的回调函数来加载其他网域的JSON数据,如"myurl?callback=?"。jQuery将自动替换?为正确的函数名,以执行回调函数。

    Jsonp原理:

    首先在客户端注册一个callback, 然后把callback的名字传给服务器

    此时,服务器先生成 json 数据。

    然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 jsonp.

    最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。

    客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里动态执行回调函数。

    实例:

    jquery代码:

    $.getJSON("http://www.app.com/index.php?c=add&callback=?",{id: 10, name: "test"}, function(data){

    alert(data.msg);

    });

    服务端返回:

    jsonp1310628945031({"rs":true,"msg":"u60a8u7684u4fe1u606fu63d0u4ea4u6210u529fuff01"})

    PHP代码:

    $result['rs'] = false;

    $result['msg'] = '您的信息提交成功!';

    $json = new Services_JSON();

    header('Content-Type: application/json');

    echo $_GET['callback'].'('.$json->encode($result).')';

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/344674.html pageNo:4
  • 相关阅读:
    一周小记(十七)
    一周小记(十九)
    2021/12/28组会
    AdaIN论文阅读(Arbitrary Style Transfer in Realtime with Adaptive Instance Normalization)
    PostgreSQL新增、更新、删除触发器
    leetcodedphard最小距离
    leetcodedp编辑距离问题两个字符串的删除操作
    正向代理代理客服端,反向代理代理服务器
    mybatisplus逻辑删除 3.1一下版本
    Eclipse使用指定JDK,无需配置Path变量
  • 原文地址:https://www.cnblogs.com/ooooo/p/2240628.html
Copyright © 2020-2023  润新知