JavaScripthttpput请求参数如何设置?

JavaScript022

JavaScripthttpput请求参数如何设置?,第1张

//使用

var url="http://lu.sohu.com/send/luport/get_psd.php?phone="+MobileNo.innerText

//alert(url)

send_request("GET",url,null,"TEXT",processTextResponse)

//定义XMLHttpRequest对象实例

var http_request = false

//定义可复用的http请求发送函数

function send_request(method,url,content,responseType,callback)

{//初始化、指定处理函数、发送请求的函数

http_request = false

//开始初始化XMLHttpRequest对象

if(window.XMLHttpRequest)

{ //Mozilla 浏览器

http_request = new XMLHttpRequest()

if (http_request.overrideMimeType)

{//设置MiME类别

http_request.overrideMimeType("text/xml")

}

}

else if (window.ActiveXObject)

{ // IE浏览器

try {

http_request = new ActiveXObject("Msxml2.XMLHTTP")

} catch (e) {

try {

http_request = new ActiveXObject("Microsoft.XMLHTTP")

} catch (e) {}

}

}

if (!http_request)

{ // 异常,创建对象实例失败

window.alert("不能创建XMLHttpRequest对象实例.")

return false

}

if(responseType.toLowerCase()=="text")

{

//http_request.onreadystatechange = processTextResponse

http_request.onreadystatechange = callback

}

else if(responseType.toLowerCase()=="xml")

{

//http_request.onreadystatechange = processXMLResponse

http_request.onreadystatechange = callback

window.alert("响应类别参数错误。")

return false

}

// 确定发送请求的方式和URL以及是否异步执行下段代码

if(method.toLowerCase()=="get")

{

http_request.open(method, url, true)

}

else if(method.toLowerCase()=="post")

{

http_request.open(method, url, true)

http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

http_request.setRequestHeader("Accept-Language","zh-cn")

}

else

{

window.alert("http请求类别参数错误。")

return false

}

http_request.send(content)

}

// 处理返回文本格式信息的函数

function processTextResponse()

{

var element = document.getElementById("main")

if (http_request.readyState == 4)

{

if (http_request.status == 200)

{

//alert(http_request.responseText)

var p = http_request.responseText

var errtd = document.getElementById("errtd")

errtd.innerHTML =""

errtd.style.display = ""

var returnstr = p.split("|")

errtd.innerHTML = returnstr[1]

//errtd.innerHTML = p

//if(p=="true"){

// //alert(p)

// var errtd = document.getElementById("errtd")

// errtd.innerHTML =""

// errtd.style.display = ""

// errtd.innerHTML = "已成功提交了您的订购,稍后您的手机会收到短信,请回复“好”完成订购"

//}else{

// //alert(p)

// var errtd = document.getElementById("errtd")

// errtd.innerHTML =""

// errtd.style.display = ""

// errtd.innerHTML = "您所在的地区没有上线"

//}

} else

{

alert("您所请求的页面有异常。")

}

}

else

{

//timervar p = document.getElementById("progress")

//p.innerText = "完成"

}

}

贴上 官网

vue-cli3 创建的时候并不会自动创建vue.config.js,因为这个是个可选项,所以一般都是需要修改webpack的时候才会自己创建一个vue.config.js

再然后因为vue-cli3内部高度集成了webpack,一般来说使用者不需要再去知道weboack做了什么,所以没有暴露webpack的配置文件,我们可以手动去创建vue.config.js 去修改默认的webpack。注意,只能叫vue.config.js。

publicPath (从 Vue CLI 3.3 起已弃用baseUrl,请使用publicPath)

参考: https://my.oschina.net/u/4446873/blog/4882847

默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.xxx.com/ 。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.xxx.com/my-app/ ,则设置 publicPath 为 /my-app/。

这个值在开发环境下同样生效。如果你想把 开发服务器架设在根路径 ,你可以使用一个条件式的值:

通常开发环境,本地运行都会直接部署在根路径上,publicPath设置为'/',访问地址是你的IP地址。如下是设置成'/app'的效果:

从上面可以得知,静态资源文件都是在app下的,所以在dist下新增添一个app目录,把dist下文件放到app下,相当于一个文件的路径,可以发现项目会正常启动。一般nginx都会配置一个静态资源目录,打包后的文件都会放到这个静态资源目录里面,nginx去做映射,所以publicPath这个属性基本不用改。'/'就行。

结论: publicPath配置成'/aaa/bbb/ccc', 则需在相应的服务器路径中新建aaa>bbb>ccc的文件夹,然后将打包后的文件放进去,就ok啦。

项目中,我会在.env.production文件中设置一个变量VUE_APP_BASE_URL ,项目打包后告诉相关人员 nginx 路由前缀是什么即可

outputDir

assetsDir

indexPath

filenameHashing

直观效果:当运行npm run build时,

打包后的文件后面都会带一个8位的hash值,那啥是个hash值?

在打包出来的文件名上加上文件内容的hash是目前最常见的有效使用浏览器长缓存的方法,js文件如果有内容更新,hash就会更新,浏览器请求路径变化所以更新缓存,如果js内容不变,hash不变,直接用缓存。(这段话是从别的文章里面参考的)。

将filenameHashing这个值设置为false试试,就不会带那个后缀hash值。

pages

lintOnSave

runtimeCompiler

transpileDependencies

productionSourceMap

crossorigin (不理解)

integrity

configureWebpack

chainWebpack

Css相关配置

devServer

如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。

补充知识

所谓的跨域就是不同源,不满足协议、域名、端口都相同的约定

http://www.test.com/dir/login.html 同源

https://www.test.com/index.html 不同源 协议不同(https)

http://www.test.com:90/index.html 不同源 端口不同(90)

http://www.demo.com/index.html 不同源 域名不同(demo)

当协议、域名、端口中任意一个不相同时,就是不同源。若不同源之间相互请求资源,就算作跨域

补充知识

反向代理(Reverse Proxy)方式是指以代理服务器来接受网络上的连接请求,然后将请求转发给内部网络上的服务器,并将服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。客户端无需做任何配置。

修改config/index.js /vue.config.js文件(改完之后千万记得要重新 npm run dev)

host 将他的值修改为 0.0.0.0,代表可以访问本机所有的IP地址,让vue项目可通过localhost和IP同时访问。

port 设置端口号

open 是否在第一次编译时是自动打开浏览器

hot 开启为true,启动热重载,自动刷新页面

https

inline

overlay

targe 代理的服务器,也就是api要访问的服务器。

changeOrigin允许跨域, 为false时,请求头中host仍然是浏览器发送过来的host如果设置成true:发送请求头中host会设置成target的值

ws是否代理websocket

pathRewrite 重写 url 的 path 部分

此文记录下来,方便自己遗忘的时候能够快速查阅,如有错误请指出。

参考链接:

https://www.jianshu.com/p/b358a91bdf2d

https://www.jb51.net/article/174200.htm

https://blog.csdn.net/liu_yunzhao/article/details/90520028

这篇文章讲的也很详细 https://blog.csdn.net/guozhangqiang/article/details/87197870