使用ajax发送带参数的url

时间:2016-03-31 10:13:13

标签: javascript

我想使用ajax发送带参数的网址以下是我要发送的数据http://sample-domain.com/send-email.php?pid=3224&act=report,但它只发送http://sample-domain.com/send-email.php

以下是我的ajax代码

<script>
  window.addEventListener("load", function(){

    var x=document.getElementsByTagName("a");
    for(var i=0; i<x.length; i++){
      x[i].addEventListener("click", nextlocation);
    };
  });

  function nextlocation(evt){
     var y = String(this.getAttribute("href"));
     alert(y);
     httpRequest = new XMLHttpRequest();
     httpRequest.open('POST', 'setnext.php');
     httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     httpRequest.send('next='+y);
  };



</script>

和setnext.php

<?php
session_start();
$_SESSION['next']=$_POST['next'];

1 个答案:

答案 0 :(得分:0)

 1. if(isPostback)// before the alert
 2. string message = "Submitted";
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("<script type = 'text/javascript'>");
    sb.Append("window.onload=function(){");
    sb.Append("alert('");
    sb.Append(message);
    sb.Append("')};");
    sb.Append("</script>");
    ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());

您已经说过使用httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 格式对数据进行编码。

但是在这里:

application/x-www-form-urlencoded

您只需在密钥和值之间加 httpRequest.send('next='+y); ,而不考虑=数据的任何其他规则。

其中一条规则是application/x-www-form-urlencoded分隔键=值对...您的数据中有&

您必须正确编码数据。

&