PHP代理jQuery部分为javascript

PHP proxy jQuery part to javascript

本文关键字:javascript 代理 jQuery PHP      更新时间:2023-09-26

以下是在jQuery中完成的代码,目的是将其更改为javascript。原始代码来自这里:php代理

以下是要更改为javascript:的jQuery

$(function(){
  // Handle form submit.
  $('#params').submit(function(){
    var proxy = 'ba-simple-proxy.php',
      url = proxy + '?' + $('#params').serialize();
      // Make GET request.
      $.get( url, function(data){
        $('#response')
          .html( '<pre class="brush:xml"/>' )
          .find( 'pre' ) // To make the lines proper and to frame the text.
            .text( data );
      });
    // Prevent default form submit action.
    return false;
  });
});

下面是javascript中的相同代码,它还没有准备好。问题是,目前这不符合逻辑。

这里没有包含的html的表单位调用ajaxcontent()。ajaxcontent()创建jQuery的".html"answers".text"部分。JQuery".fund"目前可以忽略。

在ajaxcontent()中,首先创建"pre"标记,然后在其中添加类"brush:xml"。然后"createTextNode"从被请求的页面添加源代码。这是jQuery中的"(数据)"。这里的代码失败了,因为ajax想要将信息放在id="response"中,但ajaxcontent()仍然需要执行这一行"xelement.appendChild(xtext);"来将文本附加到"xelement"。

function loadajax() {
    var xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
        }
    else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("response").innerHTML=xmlhttp.responseText;
        }
    }
    var urlvar=(document.getElementById("url").value)
    xmlhttp.open("GET","ba-simple-proxy.php&url="+urlvar,true);
    xmlhttp.send();
}
function ajaxcontent() {
    var xelement=document.createElement("pre");
    xelement.className="brush:xml";
    var xtext=document.createTextNode( loadajax() );
    xelement.appendChild(xtext);
}

有什么建议吗?jQuery部分是一个工作示例,但javascript部分还不是。

OK这里是一个没有jQuery的Ajax POST(还有一个JSFiddle来查看它的运行情况,请注意,这使用了JSFiddleecho服务,它要求方法是POST,这略有不同):

<input id="url" value="http://google.com/"/>
<button id="Button">No jQuery POST</button>
<div id="response" style="border: dashed 1px black;"></div>
document.getElementById('Button').onclick = function() {
    var xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("response").innerHTML = "Responce returned!<br/>Data:" + xmlhttp.responseText;
        }
    }
    var params = "html=" + escape(document.getElementById("url").value) + "&delay=3";
    xmlhttp.open("POST", "/echo/html/", true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", params.length);
    xmlhttp.setRequestHeader("Connection", "close");
    xmlhttp.send(params);
}

这就是为什么像jQuery这样的东西非常好,它们向开发人员隐藏了所有这些:)