2

所以,我对 Web 开发还很陌生,我遇到了一些麻烦。我希望能够发送一个 POST 请求(或者实际上,任何允许我这样做的方法),从 Firefox 扩展/书签到我控制的 PHP 页面。

我一直在阅读跨域资源共享,但我还没有设法让它工作,我可以使用一些指导。

似乎 jQuery ajax 请求可以使这成为可能,但我还不能让它工作,也许是因为我是新手。

我最近一直在阅读这方面的内容,但我一直无法在脑海中将它们融合在一起,因为似乎有很多正确的答案。

编辑:

所以我得到的 PHP 页面是这样设置的:

    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: POST");

addLink($_POST['username'], $_POST['password'], $_POST['URL']);

该函数只是根据用户名/密码将 URL 添加到数据库中。那不是问题。

而且我已经让它与来自同一域的请求一起工作:

$(document).ready(function() {
   $("a").click(function() {
      $.post("sendLinkInfo.php", { username: "<username here>", 
       password: "<password here>", URL: window.location.href },

   });
 });  

麻烦在于从任意的小书签/Firefox 扩展跨域进行。

4

3 回答 3

1

使用 jQuery 非常简单

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" },
  success: function(msg) {
      alert( "Data Saved: " + msg );
  }
});
于 2012-06-23T16:13:02.933 回答
1

看看 jQuery 文档:

var menuId = $("ul.nav").first().attr("id");
var request = $.ajax({
  url: "script.php", //Modify this part
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});

request.done(function(msg) {
  $("#log").html( msg );
});

request.fail(function(jqXHR, textStatus) {
  alert( "Request failed: " + textStatus );
});

这应该跨域工作。

于 2012-06-23T16:15:28.677 回答
1

对于跨域问题,您可以使用如下:

$("a").click(function() {
    $.ajax({
        type: 'POST',
        url: 'sendLinkInfo.php',
        crossDomain: true,
        data: {
            username: "<username here>",
            password: "<password here>",
            URL: window.location.href
        },
        dataType: 'html',
        success: function(data) {
           console.log(data);
        },
        error: function() {
            alert('POST failed.');
        }
    });
});
于 2012-06-23T16:24:43.027 回答