2017-04-08 3 views
0

Ich habe ein Problem, wie man Anfrage bekommen. Ich habe this code:, wie man HTTP get Anfrage und Verstecken Link zur Anfrage

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

In process.php ich einen Link für diese Form zu machen.

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

Ich muss GET-Anforderung an http://domain2.com/ nicht POST aber nicht umleiten zu dieser Seite und erhalten die Antwort auf meine Seite machen.

+0

, was der Fehler ist oder ein Problem ?? –

+0

es macht Post-Anfrage nicht GET – user3555881

+0

Nicht sicher, ob Sie Ihre Fiddle nach der Veröffentlichung der q bearbeitet Aber es scheint, dass es eine ** GET ** -Anforderung erfüllt. Nun, zumindest passierte das, als ich die richtige ID beim Binden des Click-Ereignisses festlegte: '$ ('# go'). Click (...)'. –

Antwort

0

Ich bin mir nicht sicher, ob dies das ist, was Sie erreichen wollten, aber so mache ich PHP-Anfragen mit AJAX und sammle Daten, ohne die aktuelle Seite zu aktualisieren.

Ich benutze einen Schalter, weil ich denke, dass es einfacher ist, die Antwort auf diese Weise zu behandeln, aber Sie können leicht ändern, damit es Ihnen passt. Der Switch wird die Antwort überprüfen, die in PHP widergegeben wird und dann diese im Schalter verwenden, die DEFAULT haben, so dass es einen allgemeinen Fehler wirft.

Ich habe den Code so geändert, dass er an Ihren Code angepasst wurde, aber ich habe möglicherweise etwas verpasst.

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

So sind Sie auf Anfrage versuchen, und eine Antwort von dieser Domain erhalten, oder Ihre Daten auf einer Datei in dieser Domäne verarbeiten?

In diesem ersten Fall: Verwenden Sie AJAX $.post Methode.

Im zweiten Fall, dann können Sie nur das Attribut Formen Aktion gesetzt: http://www.domain2.com/process.php ">

Aber ich habe nicht die Verarbeitung von Daten auf einem anderen Server empfehlen als das ist nicht effizient noch so sicher. Sie sollten nur Daten auf dem Server verarbeiten, aber wenn Sie eine API verwenden, dann können Sie den ersten Fall verwenden.

W3Schools jQuery.post() method