-2

我让用户在表单中输入一个值并onClick()激活一个函数,该函数获取用户粘贴的 URL 并将其删除(使用我制作的算法,但这无关紧要)。我最终得到一个 11 个字符的字符串,但我不确定如何将其发送到将其提交到我的数据库的 php 页面。我现在这样做的方式将浏览器带到一个新页面,我希望用户留在同一页面上。

function findvideoid(){
   window.location.href = 'submitvid.php?videoID=' + videoID;
}
4

4 回答 4

3

纯 JavaScript 解决方案(推荐):

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
  if (xhr.readyStatus == 4) { // finished
    if (xhr.status == 200) { // 200 HTTP code returned by server
    }
    else { // error
    }
  }
};
xhr.open("GET", "your-script.php?videoID=" + encodeURIComponent(videoID));
xhr.send(null);

jQuery 解决方案(如果您已经在项目中使用 jQuery 或想尝试一下,建议您使用):

// PHP script can access $_GET['videoID']
jQuery.get("your-script.php?videoID=" + encodeURIComponent(videoID));

// PHP script can access $_POST['videoID']
jQuery.post("your-script.php", {videoID: videoID});

jQuery.get( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ])

jQuery.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ])

于 2013-07-06T14:09:21.717 回答
2

如何通过加载外部 html 资源来掩盖实际的 ajax 调用?
如果不需要真正的回调,您可以将 iframe 注入到指向指定 url 的文档中,然后将其从文档中删除。

这是一个通过加载图像来访问后端 api url 的示例:

function findvideoid(id, callback){
    var img = new Image();
    img.onload = callback;
    img.src = apiUrl + '?videoId=' + encodeURIComponent(id) 
              + '&antiCache=' + new Date().getTime();
}

没有阿贾克斯。没有其他库。谷歌这样做是因为它的分析。你为什么不应该?

于 2013-07-06T14:13:01.233 回答
-1

使用 AJAX:

function findvideoid()
{
  var html = $.ajax({
    type: "POST",
    url: "submitvid.php",
    data: "videoID=" + videoID,
    async: false
  }).responseText;

  if(html == "success")
  {     
    // Uncomment the following line in your application
    //return true;
  }
  else
  {     
      return false;
  }
}
于 2013-07-06T13:55:45.880 回答
-2

您可以在 jQuery 中轻松完成此操作

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
于 2013-07-06T13:53:55.820 回答