`

ajax跨域

 
阅读更多
index.html的ajax请求 get方式请求
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/javascript;charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript" src="jquery.min.js"></script>



<script>
//alert(app);
$(function(){

        $.ajax({

     url: 'http://xxxxxxxxx?url=http://item.jd.com/1057746.html&func=jpc',
     type: "get",
    //cache: false,
    dataType:"jsonp",
    jsonp: "func",
    jsonpCallback:"jpc",
    crossDomain: true,
    timeout: 20000,
             success: function(data){
                      var obj = eval(data)
                       alert(obj.length);

                      },
                      error:function(data){
                     
                      alert("dddddddd");
                     
                  }

         });
        
       
});

</script>
</body>
</html>


后台调用:(spring mvc 返回的callback的json)

/**
* @author liyu
*
*/
@Controller

public class PluginController {
private Logger log = Logger.getLogger(PluginController.class.getName());
private static Random random =new Random();
@Autowired
private Plugin_GuessService plugin_GuessService1;
@Autowired
private AllMallDao allMallDao;
@RequestMapping(value ="/guess/yiqifa", method = RequestMethod.GET)
@ResponseBody
public String QueryPlugin(@RequestParam String url, HttpServletResponse response,HttpServletRequest request) throws IOException{
response.setCharacterEncoding("utf8");
//response.setContentType("text/html;charset=utf-8"); 
//response.setHeader("Access-Control-Allow-Origin","*");
String func = request.getParameter("func");
if(null==url||"".equals(url)){
return null;
}
String cat1 = null;
String cat2 = null;
String urlTemp = url.substring(url.indexOf(".")+1);
int urlIndexOf = urlTemp.indexOf("/");
String domainName = urlTemp.substring(0, urlIndexOf==-1?urlTemp.length():urlIndexOf);
String itemId = getItemId(allMallDao.selectByDomainName(domainName), url);
List<Map<String,Object>> listItem =SolrStatement.query("id:"+itemId);
if(listItem!=null && !listItem.isEmpty()){
Map<String, Object> mapItem = listItem.get(0);
if (mapItem == null || mapItem.isEmpty()) {
log.info("no found cat1 and cat2,please check your url");
}
if(mapItem.size()>0){
cat1 = (String) mapItem.get("cat1");
cat2 = (String) mapItem.get("cat2");
}
//price = (String)mapItem.get("price");
}else {
log.info("no found cat1 and cat2,please check your url");
}
Plugin_Guess pg = new Plugin_Guess();
pg.setLv1(cat1);
pg.setLv2(cat2);
List<Plugin_Guess> listPG = plugin_GuessService1.selectByCat1(pg);
StringBuffer sb= new StringBuffer();
sb.append("[");
if(listPG.size()>0&&listPG.size()<=15){
for(int i = 0;i<listPG.size();i++){
Plugin_Guess o = listPG.get(i);
//转化为json
sb.append("{\"url\":\""+o.getSp_url()+"\",\"url_image\":\""+o.getImage_url()+"\",\"price\":\""+o.getPrice()+"\",\"title\":\""+o.getTitle()+"\"},");
}
}else if(listPG.size()>15){
Set<Integer> set = rankRandom(listPG.size());
List<Set<Integer>> listValue = Arrays.asList(set);
Set<Integer> setV =  listValue.get(0);
Iterator<Integer> itr = setV.iterator();
while(itr.hasNext()){
int k = itr.next();
Plugin_Guess o  = listPG.get(k);
//转化为json
sb.append("{\"url\":\""+o.getSp_url()+"\",\"url_image\":\""+o.getImage_url()+"\",\"price\":\""+o.getPrice()+"\",\"title\":\""+o.getTitle()+"\"},");
}
}
String str ="";
if(listPG.size()>0){
str =sb.substring(0,sb.lastIndexOf(","));
}else
str = sb.toString();
str = str+"]";
log.info(str);
if(null!=func&&!"".equals(func)&&"jpc".equals(func)){
str = func+"("+str+")";
}

return str;
}
/**
* @param allMall
* @param url
* @return
*/
public static String getItemId(All_Mall allMall, String url){
String regexItemId = allMall.getRegex_itemid();
Matcher matcher = Pattern.compile(regexItemId).matcher(url);
if (matcher.find()){
return allMall.getItem_id_prefix() + "_" + matcher.group();
} else{
return null;
}
}

/**构造一个大小为15的集合并且数据中没有重复的
* @param s
* @return
*/
public static Set<Integer> rankRandom(int listSize){
Set<Integer> set = new HashSet<Integer>();
while(set.size()<15){
int s = random.nextInt(listSize);
set.add(s);
}
return set;
}
}

ajax跨域post提交:(采用cors)
http://www.cnblogs.com/Darren_code/p/cors.html
分享到:
评论

相关推荐

    ajax跨域解决办法

    【AJAX跨域解决办法】 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下更新部分网页的技术。然而,由于浏览器的同源策略限制,AJAX请求通常只能发送到与当前页面同一源的...

    Spring Boot Redis Session 共享(Ajax 跨域)

    本教程将详细讲解如何在Spring Boot项目中利用Redis来存储和共享Session,并解决Ajax跨域问题。 首先,我们需要理解Spring Boot中的Session管理。默认情况下,Spring Boot使用内存中的HttpSession来存储用户会话...

    demo跨域ajax_DEMO_ajax跨域_

    本示例“demo跨域ajax_DEMO_ajax跨域”着重解决C#后端与JavaScript前端之间的跨域限制。这里我们将深入探讨什么是跨域、为何会产生跨域问题以及如何通过C#和Ajax实现跨域通信。 首先,我们需要了解什么是跨域。根据...

    Javascript跨域和Ajax跨域解决方案

    JavaScript跨域和Ajax跨域是Web开发中常见的问题,尤其在进行前后端分离或API调用时,由于浏览器的同源策略限制,不同域名、协议或端口的资源请求会被阻止,这就是所谓的“跨域”。本文将深入探讨JavaScript和Ajax...

    ajax跨域调用wcf实例

    以下是实现AJAX跨域调用WCF服务的具体步骤和相关知识点: 1. **开启WCF服务的跨域支持**:在WCF服务的配置文件(通常是ServiceName.svc.cs或IServiceName.cs)中,需要启用跨域资源共享(CORS)。这可以通过添加`...

    Ajax跨域详解与代码

    **Ajax跨域详解** 在Web开发中,Ajax(Asynchronous JavaScript and XML)技术允许我们实现页面的异步更新,无需刷新整个页面即可获取并展示新数据。然而,由于浏览器的安全策略,同一源策略(Same-Origin Policy)...

    Ajax跨域访问解决方案

    **Ajax跨域访问解决方案** 在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛用于实现页面的异步更新,提升用户体验。然而,由于浏览器的同源策略限制,Ajax请求只能向同源(协议、域名和端口相同)...

    cors技术解决ajax跨域

    **CORS技术详解:解决AJAX跨域问题** 在Web开发中,由于浏览器的同源策略限制,AJAX请求只能向同一源(协议+域名+端口)发送,这在跨域请求时会遇到障碍。为了解决这个问题,CORS(Cross-Origin Resource Sharing,...

    利用JQuery jsonp实现Ajax跨域请求json数据

    本篇文章将详细讲解如何利用jQuery的jsonp方法实现Ajax跨域请求,以及如何在服务器端使用.Net的*.handler和WebService来返回JSON数据。 首先,理解JSONP的基本原理。JSONP是一种非官方的协议,通过动态创建`...

    解决ajax跨域问题

    ### 解决Ajax跨域问题 在现代Web开发中,跨域问题经常出现并困扰着开发者。根据提供的文件信息,本文将详细介绍如何通过JSONP等方法解决Ajax跨域问题。 #### Ajax与同源策略 首先,我们需要了解为什么会出现跨域...

    解决ajax跨域请求问题

    本文将深入探讨如何解决Ajax跨域请求的问题。 首先,理解“同源策略”是解决问题的关键。同源策略是浏览器为了保障网络安全而设定的一种机制,它禁止了一个源的文档或脚本访问另一个源的属性,这里的“源”指的是...

    怎样实现Ajax 跨域访问

    ### 如何实现Ajax跨域访问 在Web开发中,由于同源策略的限制,JavaScript只能对同源的页面进行操作,不能对不同源的页面进行请求。然而,在实际的应用场景中,经常会出现需要向不同域名下的服务器发起请求的情况。...

    Ajax跨域访问(ASP.NET Web)

    本教程将重点讲解如何在ASP.NET Web环境中处理Ajax跨域访问。 一、理解同源策略 同源策略是浏览器为了保护用户安全而实施的一项安全机制,它禁止了一个源(domain)的文档或脚本获取或操作另一个源的资源。这意味着...

    IE7 Ajax跨域问题

    标题 "IE7 Ajax跨域问题" 涉及到的是在使用Ajax技术在Internet Explorer 7(IE7)浏览器中处理跨域请求时遇到的挑战。在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器...

    ajax跨域上传文件.zip

    【Ajax跨域文件上传详解】 Ajax(Asynchronous JavaScript and XML)技术允许我们在不刷新整个页面的情况下,通过JavaScript异步地与服务器交换数据并更新部分网页内容。在现代Web开发中,Ajax广泛应用于创建动态和...

    ajax跨域获取数据

    但随着互联网应用的发展,这种需求变得越来越普遍,于是诞生了"ajax跨域获取数据"的技术解决方案。这个话题涵盖了多个关键知识点,包括同源策略、CORS(跨源资源共享)以及JSONP等。 1. 同源策略:同源策略是浏览器...

    Ajax跨域问题及其解决方案.docx

    ### Ajax跨域问题及其解决方案 #### 一、Ajax跨域问题概述 在现代Web开发中,前后端分离架构越来越流行。这种模式下,前端页面与后端服务通常部署在不同的服务器上,甚至可能位于不同的域名下。当浏览器发起对不同...

    Ajax跨域传输参数

    可以将book.aa.com用iframe添加到 www.aa.com的某个页面下,在www.aa.com和iframe里面都加上document.domain = "aa.com",这样就可以统一域了,可以实现跨域访问。就和平时同一个域中镶嵌iframe一样,直接调用里面的...

Global site tag (gtag.js) - Google Analytics