js代码

var url = zfba2url + "/fzyw/xzfy/smcl/autoUpdateByWS.action";
var data = {
"writid": writid,
"reportName": reportname
}; $.ajax({
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
type : "post",
url : url,
data : data,
cache : false, //默认值true
dataType : "jsonp",
jsonp: "callback", // 必须,返回的响应需要以此为前缀
success : function(json){
if (json.result != "success") {
alert("自动更新扫描材料失败!");
}
}
});

说明:

1. contentType和type的设置,解决中文编码问题;

2. jsonp用于指定一种约定,指定一个参数名,后台根据参数名获取的参数值,用作响应的前缀(参数值是jQuery自动生成的随机函数名);如某次的值为jsonp1449309226640

后台Java代码

/**
* 根据文书自动生成扫描材料.<br>
* 用于一期跨域调用,扫描材料存放在文书对应的案件.
* SINOBEST 待总结 跨域请求
* @param model
* @param callback 跨域请求者指定的jsonp
* @param writid 文书编号
* @param reportName 报表名称
* @return
*/
@RequestMapping("/autoUpdateByWS")
public @ResponseBody
String autoUpdateByWS(Model model, String callback, String writid,
String reportName) {
smclService.updateSMCL(writid, reportName);
String response = "${callback}({\"result\":\"success\"})"
.replaceFirst("\\$\\{callback\\}", callback);
return response;
}

说明:

响应返回的格式是callback(jsonContent),其中callback是使用的约定指定的参数的值,当前是jQuery自动生成的。jsonContent是json格式字符串,如{"result":"success"}

如某次的返回:jsonp1449309226640({"result":"success"})

后记

上述代码是在IE6客户端测试的,在高级的IE版本不工作,可能和IE的设置有关,项目中已经弃用。

js跨域请求实现的更多相关文章

  1. js跨域请求数据的3种常用的方法

    由于js同源策略的影响,当在某一域名下请求其他域名,或者同一域名,不同端口下的url时,就会变成不被允许的跨域请求.那这个时候通常怎么解决呢,对此菜鸟光头我稍作了整理:1.JavaScript   在 ...

  2. js跨域请求方式 ---- JSONP原理解析

    这篇文章主要介绍了js跨域请求的5中解决方式的相关资料,需要的朋友可以参考下     跨域请求数据解决方案主要有如下解决方法:   1 2 3 4 5 JSONP方式 表单POST方式 服务器代理 H ...

  3. 【JS跨域请求】Ajax跨域请求JSONP

    前两天被问到ajax跨域如何解决,还真被问住了,光知道有个什么jsonp,迷迷糊糊的没有说上来.抱着有问题必须解决的态度,我看了许多资料,原来如此... 为何一直知道jsonp,但一直迷迷糊糊的不明白 ...

  4. JS跨域请求 JSONP B/S全代码

    Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面.动态网页.web服务.WCF,只要是跨域请求,一律不准:Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有 ...

  5. js跨域请求jsonp解决方案-最简单的小demo

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  6. js跨域请求(jsonp)

    jsonp是跨域请求的手段之一. jsonp的原理: 先来看看下面这段代码 <!DOCTYPE html> <html lang="en"> <hea ...

  7. js跨域请求的5中解决方式

    跨域请求数据解决方案主要有如下解决方法: ? 1 2 3 4 5 JSONP方式 表单POST方式 服务器代理 Html5的XDomainRequest Flash request 分开说明: 一.J ...

  8. PhoneGap:JS跨域请求

    PhoneGap开发,理论上好处多多.但因为javascript是其中的主角,并且是直接存放于手机,跟服务器数据交互,就会有一个跨域访问的问题. 当然,这个问题肯定有解决方案,不然的话,这种利用Pho ...

  9. 什么是JS跨域请求

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

随机推荐

  1. Inner join case when

    SELECT ( ), wn.ActualWorkflowNumber) + ' ' + wi.SN ) AS SN , wi.RecordID , wi.WorkflowName , wc.Work ...

  2. [洛谷P2051] [AHOI2009]中国象棋

    洛谷题目链接:[AHOI2009]中国象棋 题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法 ...

  3. [Luogu 3958] NOIP2017 D2T1 奶酪

    题目链接 人生第一篇题解,多多关照吧. 注意事项: 1.多组数据,每次要先初始化. 2.因为涉及到开根,所以记得开double. 整体思路: 建图,判断「起点」与「终点」是否连通. 方法可选择搜索(我 ...

  4. yum快速安装gitlab

    安装gitlab前戏使用官方的源,还是比较慢的,gitlab官方提供了一个清华大学的源 新建 /etc/yum.repos.d/gitlab-ce.repo,内容为 源[gitlab-ce]name= ...

  5. static变量与context泄漏

    1.mContext--- public class LoginActivity extends BaseActivity { ....      /**初始化信息*/      private vo ...

  6. JS之document对象(找元素、操作内容、操作属性、操作样式及4道例题)

    document对象 一.找元素 1.根据id找 示例: <input id = "a" type="button" value="找元素&qu ...

  7. 边绘边理解prototype跟__proto__

    网上流传着一张讲解prototype跟__proto__关系的图,尽管他已经描绘的很清楚了,但对于初学者来说,江太公感觉还是过于纠结,于是起心重绘,让他们之间的关系更加明晰可理解,一方面出于分享目的, ...

  8. vuejs怎么在服务器部署?

    通过npm run build 把生成的dist文件夹(不要上传文件夹)里的内容上传到http服务器上就可以通过 http来访问了,开发机上正常,上传以后 程序出现错误不能运行的原因99.99%的可能 ...

  9. static class 和 non static class 的区别

    static class non static class 1.用static修饰的是内部类,此时这个 内部类变为静态内部类:对测试有用: 2.内部静态类不需要有指向外部类的引用: 3.静态类只能访问 ...

  10. javascript反混淆之packed混淆

    function getKey() { var aaaafun = function(p, a, c, k, e, d) { e = function(c) { return (c < a ? ...