【跨域Jsonp】是否可以用jsonp完成跨域? nodejs发布的服务可以

2024-08-31 03:48

本文主要是介绍【跨域Jsonp】是否可以用jsonp完成跨域? nodejs发布的服务可以,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于jsonp跨域的原理参考其他日志。
1、jsonp跨域只能为get,不能为post。靠url传递数据
2、soap协议的 好像不能使用jsonp,他返回的始终是xml,不能以js的方式返回,会出现错误:不能解析xml为js。
3、用nodejs写一个http服务,用jsopn是否可以跨域:可以!!

服务端的代码为:

var http = require('http');  
var urllib = require('url');  var port = 10011;  
var data = {'name': 'jifeng', 'company': 'taobao'};  http.createServer(function(req, res){  var params = urllib.parse(req.url, true);  console.log(params);  if (params.query && params.query.callback) {  //console.log(params.query.callback);  var str =  params.query.callback + '(' + JSON.stringify(data) + ')';//jsonp  res.end(str);  } else {  res.end(JSON.stringify(data));//普通的json  }       
}).listen(port, function(){  console.log('server is listening on port ' + port);    
})  

前端的代码为:

<html>    
<head>    <script src="http://code.jquery.com/jquery-latest.js"></script>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    
</head>    
<body>    
<script type="text/javascript">    
function get_jsonp() {    $.getJSON("http://10.232.36.110:10011?callback=?",    function(data) {  $('#result').val('My name is: ' + data.name);    });    
}    
</script>    
<a href="javascript:get_jsonp();">Click me</a><br />    
<textarea id="result" cols="50" rows="3"></textarea>    
</body>    
</html>  

此时也可以在服务端设置允许跨域,方式如下:

res.writeHead(200, {'Content-Type': 'application/json;charset=utf-8','Access-Control-Allow-Origin': '*'});

但是当我采用java+axis+tomcat时,此时不可以用这种方法实现跨域,因为此时的webservice遵从soap协议,以xml格式交互数据。而jsonp要求返回的数据为js格式,因此无法控制。
不过可以看看用action或者servlet写服务端。
也就是说:当前端希望采用jsonp方式实现跨域时(只能是get方式),后端要根据url判断是否有callback,有的话要返回js格式。

这篇关于【跨域Jsonp】是否可以用jsonp完成跨域? nodejs发布的服务可以的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122806

相关文章

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Java 中的跨域问题解决方法

《Java中的跨域问题解决方法》跨域问题本质上是浏览器的一种安全机制,与Java本身无关,但Java后端开发者需要理解其来源以便正确解决,下面给大家介绍Java中的跨域问题解决方法,感兴趣的朋友一起... 目录1、Java 中跨域问题的来源1.1. 浏览器同源策略(Same-Origin Policy)1.

Python如何判断字符串中是否包含特殊字符并替换

《Python如何判断字符串中是否包含特殊字符并替换》这篇文章主要为大家详细介绍了如何使用Python实现判断字符串中是否包含特殊字符并使用空字符串替换掉,文中的示例代码讲解详细,感兴趣的小伙伴可以了... 目录python判断字符串中是否包含特殊字符方法一:使用正则表达式方法二:手动检查特定字符Pytho