node跨域请求方法小结

发布时间 - 2026-01-11 02:57:58    点击率:

本文介绍了node跨域请求,主要介绍了两种方法,一种是jsonp,另一种res.wirteHead,具体如下:

第一种:jsonp

参看用nodejs实现json和jsonp服务

第二种:res.wirteHead

node部分

var http = require('http')
var url = require('url')
var querystring = require('querystring')

var port = 9000
var jsonData = { 'name': 'xiaohong', 'job': 'daboss' }
http.createServer(function (req, res) {
  // var pathStr = url.parse(req.url)
    res.writeHead(200, {
    'Content-Type': 'application/json;charset=utf-8',
    'Access-Control-Allow-Credentials': true,
    'Access-Control-Allow-Origin': '*'
  })
  var type = req.method;
  if (type == 'GET') {
   
    res.end(JSON.stringify(jsonData))
  } else if (type == 'POST') {
    var str = '';
    req.on('data',function(chunk){
      str += chunk;
    })
    
    req.on('end',function(){
      var data = querystring.parse(str)
      console.log(data)
      if(data.name == "" || data.job == ""){
        res.end(JSON.stringify({'success':true,msg:'填写有误'}))
      }else{
        res.end(JSON.stringify({'success':false,msg:'添加成功'}))
      }

    })
  }

}).listen(port, function () {
  console.log('server is runing at port ' + port)
})

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

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

ajax里不需要做任何特殊处理

dataType仍旧是json

html部分

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <a class="click" href="javascript:get_jsonp()" rel="external nofollow" >click me</a>
  <p class="result"></p>
  <label>姓名:</label>
  <input class="name" type="text" />
  <label>职位:</label>
  <input class="job" type="text">
  <a class="add" href = "javascript:add()">添加</a>
  <p class="msg"></p>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script>
    function get_jsonp() {
      $.ajax({
        type: 'get',
        dataType: 'json',
        url: 'http://localhost:9000',
        success: function (data) {
          $('.result').html('my name is ' + data.name)
        },
        error: function (err) {
          $('.result').html('出错了 ' + err.status)
        }
      })
    }
    function add(){
      $.ajax({
        type:'post',
        url:'http://localhost:9000',
        dataType:'json',
        data:{
          'name':$(".name").val(),
          'job':$(".job").val()
        },
        success:function(data){
          $('.msg').html(data.msg)
        },
        error:function(err){
          
           $('.msg').html('出错了'+err.status)
        }
      })
    }
  </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# node跨域  # nodejs  # 跨域  # node  # 跨域请求  # nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)  # 借助node实战JSONP跨域实例  # Node.js设置CORS跨域请求中多域名白名单的方法  # NODE.JS跨域问题的完美解决方案  # Node.js配合node-http-proxy解决本地开发ajax跨域问题  # 错了  # 两种  # 要做  # 不需  # 第二种  # 第一种  # 大家多多  # Origin  # Control  # true  # Access  # Credentials  # Content  # writeHead  # Type  # utf  # charset  # application  # console  # chunk 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Eloquent进行子查询  详解Android中Activity的四大启动模式实验简述  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  linux top下的 minerd 木马清除方法  南京网站制作费用,南京远驱官方网站?  如何获取上海专业网站定制建站电话?  Python文件流缓冲机制_IO性能解析【教程】  Android使用GridView实现日历的简单功能  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何在阿里云虚拟主机上快速搭建个人网站?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Python并发异常传播_错误处理解析【教程】  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  奇安信“盘古石”团队突破 iOS 26.1 提权  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  高端网站建设与定制开发一站式解决方案 中企动力  b2c电商网站制作流程,b2c水平综合的电商平台?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  简历没回改:利用AI润色让你的文字更专业  如何在香港免费服务器上快速搭建网站?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  JS弹性运动实现方法分析  如何在七牛云存储上搭建网站并设置自定义域名?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  免费视频制作网站,更新又快又好的免费电影网站?  PHP 500报错的快速解决方法  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  LinuxCD持续部署教程_自动发布与回滚机制  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Thinkphp 中 distinct 的用法解析  如何快速查询域名建站关键信息?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  JS碰撞运动实现方法详解  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Bootstrap整体框架之JavaScript插件架构  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  如何在VPS电脑上快速搭建网站?  装修招标网站设计制作流程,装修招标流程?  Laravel如何实现文件上传和存储?(本地与S3配置)  实例解析angularjs的filter过滤器  如何用好域名打造高点击率的自主建站?