【问题标题】:Sending POST request to a specific domain?向特定域发送 POST 请求?
【发布时间】:2012-06-24 00:35:38
【问题描述】:

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

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

似乎一个 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 扩展跨域进行。

【问题讨论】:

  • 我们都是代码奇才,但我们的水晶球坏了。请提供一些代码示例?
  • 当然。会给出我到目前为止所得到的。对不起。

标签: php javascript jquery ajax cross-domain


【解决方案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 );
});

这应该可以跨域工作。

【讨论】:

  • 看来我终于设法让它工作了。让我开心。问题实际上是我的轻微语法错误。但是,这种形式的请求确实通过了,所以你的答案是正确的。非常感谢!
【解决方案2】:

使用 jQuery 非常简单

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" },
  success: function(msg) {
      alert( "Data Saved: " + msg );
  }
});

【讨论】:

  • 问题是我需要这个从书签/Firefox 扩展跨域工作。
【解决方案3】:

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

$("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.');
        }
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-29
    • 2014-08-04
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 2014-02-19
    • 2020-01-10
    • 2019-01-19
    相关资源
    最近更新 更多