js怎么发送http请求

JavaScript08

js怎么发送http请求,第1张

jquery的post请求不能跨域。可以用get方式发送。

//jquery-1.8.3.min.js

     function testJQsend(){

       var host1="http://www.link2world.top/jsonpserver.php?jsonpCallBack=success_jsonpCallback"

       $.ajax({

url: host1,

data:{

"appid":"123456",

                "bucket":"test",

                "url":"http://linme.test.upload/abc.jpg"

},

timeout:3000,

dataType: "jsonp",

complete: function(response, textStatus) {

if(response.status == 404) {

  alert("请求失败!")

}else if(response.status == 200){

  alert("响应状态码:" + response.status + "\n响应信息: " + textStatus + "\nURL状态正常!")

}else {

  alert("响应状态码:" + response.status + "\n响应信息: " + textStatus + "\nURL 可能失效了!")

}

}

})

     }

以Ajax方式发送

<script type="text/javascript">

一、获取url所有参数值

function US() {

var name, value

var str = location.href

var num = str.indexOf("?")

str = str.substr(num + 1)

var arr = str.split("&")

for (var i = 0 i < arr.length i++) {

num = arr[i].indexOf("=")

if (num > 0) {

name = arr[i].substring(0, num)

value = arr[i].substr(num + 1)

this[name] = value

}

}

}

二、使用JS 发送JSON格式的POST请求

 var us = new US()

var xhr = new XMLHttpRequest()

xhr.open("POST", "/searchguard/api/v1/auth/login", true)

xhr.setRequestHeader("Content-type", "application/json")

xhr.setRequestHeader("kbn-version", "5.3.0")

xhr.onreadystatechange = function() {

if (xhr.readyState == 4) {

if (xhr.status == 200) {

window.location.href = us.nextUrl

}

}

}

xhr.send(JSON.stringify({

"username" : us.u,

"password" : us.p

}))

</script>

1、传统方式,判断浏览器进行post请求

var xmlobj //定义XMLHttpRequest对象

function CreateXMLHttpRequest()

{

if(window.ActiveXObject)

//如果当前浏览器支持Active Xobject,则创建ActiveXObject对象

{

  //xmlobj = new ActiveXObject("Microsoft.XMLHTTP")

  try {

      xmlobj = new ActiveXObject("Msxml2.XMLHTTP")

      } catch (e) {

     try {

       xmlobj = new ActiveXObject("Microsoft.XMLHTTP")

        } catch (E) {

          xmlobj = false

         }

        }

       }

else if(window.XMLHttpRequest)

//如果当前浏览器支持XMLHttp Request,则创建XMLHttpRequest对象

{

  xmlobj = new XMLHttpRequest()

}

}

function SubmitArticle(act,cityname,antique) //主程序函数

{

  CreateXMLHttpRequest() //创建对象

  //var parm = "act=firstweather" //构造URL参数

  //antique = escape(antique)

  var parm = "act=" + act + "&cityname=" + cityname + "&antique=" + antique//构造URL参数

  //xmlobj.open("POST", "{dede:global.cfg_templeturl/}/../include/weather.php", true) //调用weather.php

  xmlobj.open("POST", "/weather/include/weather.php", true) //调用weather.php

  xmlobj.setRequestHeader("cache-control","no-cache")

  xmlobj.setRequestHeader("contentType","text/htmlcharset=uft-8") //指定发送的编码

  xmlobj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")  //设置请求头信息

  xmlobj.onreadystatechange = StatHandler  //判断URL调用的状态值并处理

  xmlobj.send(parm) //设置为发送给服务器数据

}

2、虚拟表单的形式提交post请求

function post(URL, PARAMS) {

  var temp = document.createElement("form")

  temp.action = URL

  temp.method = "post"

  temp.style.display = "none"

  for (var x in PARAMS) {

    var opt = document.createElement("textarea")

    opt.name = x

    opt.value = PARAMS[x]

    // alert(opt.name)

    temp.appendChild(opt)

  }

  document.body.appendChild(temp)

  temp.submit()

  return temp

}

//调用示例:

post('请求地址', {html :prnhtml,cm1:'sdsddsd',cm2:'haha'})