app开发定制公司解决 Ajax:Ensure CORS response header values are valid 跨域问题

一、报错汇总:

1.1跨域问题

xhr.send();
  • 1
Failed to load resource: the server responded with a status of 404 (Not Found)
  • 1

1.2 其他问题

1. app开发定制公司文件不存在

`GET http://127.0.0.1:5500/server/ 404 (Not Found)`
  • 1
POST http://127.0.0.1:5500/server 405 (Method Not Allowed)
  • 1

2. 忘记nodemon app.js

二、报错分析

2.1 跨域问题

  • 协议、域名、app开发定制公司端口三者出现不同时,app开发定制公司就报跨域的bug
  • app开发定制公司一般计算机默认端口是5500,app开发定制公司但是网上教程有教get 3000的,有教get 8000的,端口不同自然就会产生跨域问题

原报错代码:
html

//以默认5500端口向http://127.0.0.1:3000/server发送get请求<!DOCTYPE html><html lang="en"><head>	<meta charset="UTF-8">	<title>Document</title></head><style>	#result {		width: 200px;		height: 100px;		border: 1px solid #90b;	}</style><body>	<button>点击发送请求</button>	<div id="result"></div>	<script type="text/javascript">		const result = document.getElementById('result');		// 按钮绑定事件		const button = document.getElementsByTagName('button')[0];		button.onclick = function () {			// console.log('hh')			//1、创建对象			const xhr = new XMLHttpRequest();			// 2、初始化			xhr.open('get', 'http://127.0.0.1:3000/server');			// 3、发送			xhr.send();			// 4、事件绑定,处理服务器端返回的结果			xhr.onreadystatechange = function () {	</script></body></html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

app.js

// 引入express框架const express = require('express');// 创建web服务器const app = express();const request = require('request')//1 在后面加上app.allapp.all("*", function (req, res) {   //此时的 '*' 指用来处理所有的请求,从而在服务器端解决跨域的问题;	res.header('Access-Control-Allow-Origin', 'http://127.0.0.1:3000');   //此时表示:允许 'http://127.0.0.1:5500' 地址来访问服务器;   	res.header('Access-Control-Allow-Methods', 'GET,POST,PUT');           //此时表示:允许发的请求方式,如:'GET,POST,PUT';	res.header('Access-Control-Allow-Headers', 'Content-Type');           //此时表示:允许发的请求头,如:'Content-Type' 请求头的类型;	req.next();   //请求回来,并进行下一步的操作;  });  //2 或者简单在get路由里加一句代码app.get('/server', (req, res) => {	res.setHeader('Access-Control-Allow-Origin','*');   res.send('Hello Express');   }); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

2.2 其他问题

1. 文件不存在

  • 这个可能是只有我会遇到的问题,真的笨,一开始一直想get5500端口下的server,但因为端口同源,会检测文件夹是否存在,不存在则报错,我也不知道老师为啥演示就一直可以,其实合理应该同源确实可以访问的,但当时我一整个迷茫状态,看到404就以为是代码写错了,后面仔细看看报错就可以发现报错说的是该文件夹not found
    GET http://127.0.0.1:5500/server/ 404 (Not Found)
  • 可以试着get http://127.0.0.1:5500,你就会看到你这个代码窗口运行文件夹的文件
  • 所以直接改个端口,再用上面的跨域方法解决就行了
  • 如果就一定要用5500这个端口,那就在网上搜改端口的方法,我是用vscode写的,所以直接在liveSeversettings.json中加上
"liveServer.settings.port": 3000
  • 1
  • 改完端口还是要解决跨域问题,所以不如就直接访问其他接口算啦

2.忘记nodemon app.js
这个没啥好说的,急了是会忘的,回去重新node一下就好

三、个人感悟

  • 前面三件套+node学得太顺了,人一多学着资源就多,问题解决也方便,一到ajax,视频五花八门质量参差不齐,上网搜半天都没能真的解决我问题,之前一直觉得有些学友被pink惯坏了,一报Bug自己不会搜,没有一点自学能力,等到了自己身上因为这么个简单报错,昨天搞了7个钟,最后重新看了个视频换了个写法误打误撞解决了,今天又搞了8个钟,到现在才彻底明白怎么一回事
  • 其实但凡仔细看一眼报错,但凡从一开始就好好理解代码逻辑而不是敷衍式学习,也不会因为这么一个小问题费这么长时间
  • 但结果总归是好的,我终于是解决了这个问题,学这些还是挺上瘾的,当然前提是得能学的懂,一有什么地方实现不了就便秘一样地难受,所以还是一步一步慢慢来吧
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发