PHP 代理 jQuery 部分到 javascript

标签 php javascript jquery ajax proxy

这里是用 jQuery 完成的代码,目的是将其更改为 javascript。原始代码来自这里:php proxy

这是要更改为 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”和“.text”部分。 JQuery“.find”目前可以忽略。

在ajaxcontent()中,首先创建“pre”标签,然后在其中添加类“brush:xml”。然后“createTextNode”添加所请求页面中的源代码。这就是 jQuery 中的“( data )”。这里代码失败了,因为 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 部分还不是。

最佳答案

好的,这里是一个没有 jQuery 的 Ajax POST(和 a JSFiddle 要查看它的实际效果,请注意,这使用了 JSFiddle echo service ,它要求方法是 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 这样的东西如此优秀,它们向开发者隐藏了所有这些:)

关于PHP 代理 jQuery 部分到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12183110/

相关文章:

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 如何将 HTML 代码从另一个文件添加到 .html 文件?

php - Javascript 添加动态 HTML 的字符串问题

javascript - 在 ng-click 上更新 AngularJS 模型,DOM 没有响应

javascript - $(document).click() 在 iPhone 上无法正常工作。查询

javascript - 滚动动画不适用于元素

php - 如何让普通用户输入时间和日期以将其作为时间戳添加到 mysql 中?

javascript - 编写可调用对象的 typescript

jquery 内容隐藏/显示面板

javascript - 无法读取 null 和覆盖的属性 'classList'