dpv21589 2018-02-04 12:53
浏览 156
已采纳

在传递变量时从Jquery AJAX执行cURL请求

I've researched a lot about PHP cURL and already know a fair amount of Jquery Ajax however what i'm trying to do isn't straight down the line. I'm making an API call using an API Login button that returns a users nickname.

I then make an ajax request to a php file containing the curl paramaters within which i want to pass the users nickname.

RESOLVED

Using data in the AJAX Request i was able to successfully send the javascript variable nickname as a parameter.

The variable was then accessible via $nickname = $_GET['nickname']; in the cURL PHP file.

Thank you to rollstuhlfahrer for providing the solution marked below.


Ajax Request:

var nickname = API.getUserInfo().value.nickname;
$.ajax({
  method: 'GET',
  url: "/curl-php-file.php",
  cache: false,
  data: {
    nickname: nickname, // Sends data as a URL paramater
  }
  success: function(response) {
    // Data
    var data = response.data.data;
    console.log(data);
  },
  error: function(response, val) {
    console.log("AJAX Request Failed");
  }
});

cURL PHP File:

$nickname = $_GET['nickname']; // Gets data from AJAX
require_once("../../../../../wp-load.php");
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://.../?nickname=' . $nickname,
CURLOPT_HTTPHEADER => array(
  'Accept: application/json',
  'Authorization: MYTOKEN'
)
));
$resp   = curl_exec($curl);
wp_send_json_success(json_decode($resp));
curl_close($curl);
exit;
  • 写回答

1条回答 默认 最新

  • douzhang8144 2018-02-04 13:17
    关注

    Since you are using GET, you can just pass it along as a query parameter:

    $.ajax({
      method: 'GET',
      url: "/curl-php-file.php?nickname=" + nickname,
      cache: false,
      success: function(response) {
        // Data
        var data = response.data.data;
        console.log(data);
      },
    }
    

    Another option. This has the beauty if built-in character encoding:

    $.ajax({
      url: "/curl-php-file.php",
      method: "get", 
      data: { 
        nickname: nickname,
      },
    

    Source

    Then in your PHP code, you retrieve the passed parameter:

    $nickname = $_GET['nickname'];
    

    And append it to your URL:

    CURLOPT_URL => 'https://.../?nickname=' . $nickname,
    

    You should do some checking, if the nickname is a valid one before sending it off via curl.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试