1. var http = require('http')
  2. var url = require('url')
  3. var querystring = require('querystring')
  4. var port = 9000
  5. var jsonData = { 'name': 'xiaohong', 'job': 'daboss' }
  6. http.createServer(function (req, res) {
  7. // var pathStr = url.parse(req.url)
  8. res.writeHead(200, {
  9. 'Content-Type': 'application/json;charset=utf-8',
  10. 'Access-Control-Allow-Credentials': true,
  11. 'Access-Control-Allow-Origin': '*'
  12. })
  13. var type = req.method;
  14. if (type == 'GET') {
  15. res.end(JSON.stringify(jsonData))
  16. } else if (type == 'POST') {
  17. var str = '';
  18. req.on('data',function(chunk){
  19. str += chunk;
  20. })
  21. req.on('end',function(){
  22. var data = querystring.parse(str)
  23. console.log(data)
  24. if(data.name == "" || data.job == ""){
  25. res.end(JSON.stringify({'success':true,msg:'填写有误'}))
  26. }else{
  27. res.end(JSON.stringify({'success':false,msg:'添加成功'}))
  28. }
  29. })
  30. }
  31. }).listen(port, function () {
  32. console.log('server is runing at port ' + port)
  33. })

重点部分是添加响应头信息

  1. res.writeHead(200, {
  2. 'Content-Type': 'application/json;charset=utf-8',
  3. 'Access-Control-Allow-Credentials': true,
  4. 'Access-Control-Allow-Origin': '*' //可以是*,也可以是跨域的地址
  5. })

ajax里不需要做任何特殊处理
dataType仍旧是json

html部分

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <a class="click" href="javascript:get_jsonp()">click me</a>
  11. <p class="result"></p>
  12. <label>姓名:</label>
  13. <input class="name" type="text" />
  14. <label>职位:</label>
  15. <input class="job" type="text">
  16. <a class="add" href = "javascript:add()">添加</a>
  17. <p class="msg"></p>
  18. <script src="http://code.jquery.com/jquery-latest.js"></script>
  19. <script>
  20. function get_jsonp() {
  21. $.ajax({
  22. type: 'get',
  23. dataType: 'json',
  24. url: 'http://localhost:9000',
  25. success: function (data) {
  26. $('.result').html('my name is ' + data.name)
  27. },
  28. error: function (err) {
  29. $('.result').html('出错了 ' + err.status)
  30. }
  31. })
  32. }
  33. function add(){
  34. $.ajax({
  35. type:'post',
  36. url:'http://localhost:9000',
  37. dataType:'json',
  38. data:{
  39. 'name':$(".name").val(),
  40. 'job':$(".job").val()
  41. },
  42. success:function(data){
  43. $('.msg').html(data.msg)
  44. },
  45. error:function(err){
  46. $('.msg').html('出错了'+err.status)
  47. }
  48. })
  49. }
  50. </script>
  51. </body>
  52. </html>

node跨域方法的更多相关文章

  1. node 跨域问题

    node跨域有很多方法 1.引入 中间件cors 我觉的最好的方法 var express=require('express'); var cors=require('cors'); var app= ...

  2. Node 跨域问题 Access to XMLHttpRequest at 'http://localhost:8080/api/user/login' from origin 'http://localhost:808

    人不可能踏进同一条河流,我可以一天在同一个问题上摔倒两次. 这次是跨域问题,都是泪,教程提供的服务端代码虽然配置了文件,但是依然是没有解决跨域问题,依然报错 Request header field ...

  3. js中几种实用的跨域方法原理详解(转)

    今天研究js跨域问题的时候发现一篇好博,非常详细地讲解了js几种跨域方法的原理,特分享一下. 原博地址:http://www.cnblogs.com/2050/p/3191744.html 下面正文开 ...

  4. js中几种实用的跨域方法原理详解

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

  5. 前端Js跨域方法汇总—剪不断,理还乱,是跨域

    1.通过jsonp跨域2.通过修改document.domain来跨子域(iframe)3.隐藏的iframe+window.name跨域4.iframe+跨文档消息传递(XDM)5.跨域资源共享 C ...

  6. JavaScript跨域方法

    一.什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦.这里把涉及到跨域的一些问题简单地整理一下: ...

  7. JS跨域方法及原理

        JS跨域分析判断 JS跨域:在不同域之间,JS进行数据传输或通信.比如ajax向不同的域请求数据.JS获取iframe中的页面中的值(iframe内外不同域) 只要协议.端口.域名有一个不同则 ...

  8. [转]js中几种实用的跨域方法原理详解

    转自:js中几种实用的跨域方法原理详解 - 无双 - 博客园 // // 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同 ...

  9. JavaScript 跨域方法总结

    同源策略 在客户端编程语言中,如javascript和 ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同源策略规定跨域之间的脚本是隔离的,一个域的脚 ...

随机推荐

  1. 实战_4:UI开发工具-WindowBuilder

    介绍: WindowBuilder是谷歌开发的,开发java图形界面的工具,是一个eclipse插件. WindowBuilder支持开发多种形式的图形界面:SWT/JFace.Swing.GWT 安 ...

  2. set|lambda|reduce

    #!/usr/bin/python a=set([i for i in range(4,8)]) b=set([i for i in range(5,12)]) c= sorted(a & b ...

  3. redis安装zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录

    问题: zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录 解决方案:执行命令:make MALLOC=libc make MALLOC=libc

  4. java后台使用HttpServletRequest接收参数转换为model

    当前端需要传图片时,后台用MultipartHttpServletRequest接收参数,request接收过来的参数有很多弊端,需要包装成自己的model就得做转化 弊端: 1.所接收的参数类型无法 ...

  5. [LC] 234. Palindrome Linked List

    Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...

  6. [LC] 110. Balanced Binary Tree

    Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...

  7. 吴裕雄--天生自然python学习笔记:python爬虫PM2.5 实时监测显示器

    PM2.5 对人体的健康影响很大,所以空气中的 PM2.5 实时信息受到越来越多的关注. Python 的 Pandas 套件不但可以自动读取网页中的表格 数据 , 还可对数据进行修改.排序等处理,也 ...

  8. python中字母与ASCII码之间的转换以及进制间的转换

    字母与ascii码: ord(c):参数是长度为1的字符串,简称字符.当参数为统一对象时(unicode object),返回能代表该字符的统一编码,当参数为8比特的字符串时,返回该字节的值.例如,o ...

  9. OpenCVSharp对图像进行颜色分割

    使用OpencvSharp的InRange函数对图像进行RGB颜色的分割. using System; using OpenCvSharp; using OpenCvSharp.Extensions; ...

  10. hadoop datanode 启动正常,但master无法识别(50030不显示datanode节点)

    start-all.sh 启动 坑爹 找不出错 试了各种办法,重新formaet 查看 集群ID是否相同.都无效 日志也没看到错 按官网方法手动一步步启,问题照旧 master节点,yarn name ...