2017-04-08 91 views
0

我有一个问题如何获取请求。我有this code如何让http获取请求并隐藏请求的链接

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"; 
    } 
?> 

我需要GET请求http://domain2.com/没有职位,但不重定向到该页面,并获得在我的网页的响应。

+0

什么错误或问题? –

+0

它使发布请求不GET GET – user3555881

+0

不知道您是否在发布q后编辑了小提琴uestion,但它似乎正在执行** GET **请求。那么,至少发生在绑定click事件时设置正确ID:'$('#go')。click(...)'。 –

回答

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; 
}); 
0

所以你在该域文件试图请求并获得来自该域的响应,或处理你的数据?

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

在第二种情况,那么你可以只设置形式的行动属性: http://www.domain2.com/process.php“>

但我不建议在另一台服务器上处理数据这是没有效率的,也不安全。你应该只处理数据,您的服务器上,但是如果你使用的是API,那么你可以使用第一种情况。

W3Schools jQuery.post() method