如何制作http获取请求并隐藏请求

时间:2017-04-08 12:40:08

标签: javascript php html

我有一个问题如何获取请求。我有this code

HTML

<div id="test"></div>
<input type="text" id="url" name="url" placeholder="text" size="40px">
<br>
<input type="button" id="go" name="go" value="go">

JS

$(document).ready(function(){
    $("#test").click(function(){
        url=$("#url").val()
        $.ajax({
            url:"process.php",
            type:"GET",
            data:"url="+url,
            success:function(result){
                $("#go").html(result)
            }
        })
    })
})

在process.php中,我为此表单创建了一个链接。

<?php
    $url = $_POST['url'];
    $link = file_get_contents("https://parsedurl.com/?url=".$url."");
    $parse = json_decode($link, true);
    $md = $parse['user_id'];
    $nd = $parse['email_id'];
    $pro = file_get_contents("http://domain2.com/complete?id=".$md."_".$nd."");
    if($pro == 0 ){
        echo "success";
    }elseif (!$pro != 0) {
        echo "error";
    }elseif (!$pro) {
        echo "link error";
    }else{
        echo "put a link";
    }
?>

我需要向http://domain2.com/发出GET请求而不是POST,但不会重定向到此页面并在我的页面中获得响应。

2 个答案:

答案 0 :(得分:0)

我不太确定这是否是您想要实现的目标,但这是我使用AJAX进行PHP请求并收集数据而不刷新当前页面的方式。

我使用开关,因为我认为以这种方式处理响应更容易,但您可以轻松更改以适应您。 交换机将检查在PHP中回显的响应,然后在交换机中使用它,具有DEFAULT,因此它会抛出一般错误。

我更改了尽可能多的代码,因此根据您的代码进行了调整,但我可能错过了一些代码。

JSfiddle:https://jsfiddle.net/tc8yuy66/

//Sends request to process.php
$("#test").click(function() {
//Get data
var data = {};
data.email = $("#email").val();

  //Info for submit
  var options = {};
  options.data = data;
  options.dataType = 'text';
  options.type = 'post';
  options.url = 'process.php';
  options.success = function(response) {
    //Response switch isn't neccesary but I prefer it
    switch (response) {
      case "success":
        //Successful, do something
        break;
      case "error":
        //throw error
        break;
      case "link error":
        //throw error
        break;
      case "put a link":
        //throw error
        break;
      default:
        //throw default error, this is in case something goes really bad
        break;
    }
  };
  //Runs ajax request
  $.ajax(options);
  return false;
});

答案 1 :(得分:0)

您是尝试请求并从该域获取响应,还是处理该域中文件的数据?

在第一种情况下:使用AJAX $.post方法。

在第二种情况下,您只需设置表单操作属性: http://www.domain2.com/process.php“&GT;

但我不建议在另一台服务器上处理数据,因为这样做效率不高也不安全。您应该只处理服务器上的数据,但是如果您使用的是API,则可以使用第一种情况。

W3Schools jQuery.post() method