我如何在javascript中向url请求添加变量,更具体地说,expo和react native

Posted

技术标签:

【中文标题】我如何在javascript中向url请求添加变量,更具体地说,expo和react native【英文标题】:how do i add variables to url requests in javascript, more specifically, expo and react native 【发布时间】:2017-09-24 23:19:37 【问题描述】:

我目前正在通过 fetch in expo 发出此请求

const response = await fetch(`https://graph.facebook.com/v2.9/i need to enter the id here/friends?access_token=$token`);

我有 user.id 但我不确定如何在字符串中调用 id

这里是整个函数,除了字符串中的 id 之外,一切正常

login = async () => 
  const ADD_ID = '<APP ID>'
  const options = 
    permissions: ['public_profile', 'email', 'user_friends'],
  
  const type, token = await Expo.Facebook.logInWithReadPermissionsAsync(ADD_ID, options)
  if (type === 'success') 
    const response = await fetch(`https://graph.facebook.com/me?access_token=$token`)
    const user = (await response.json());
    const id = user.id;
    console.log(user);
    console.log(id);
    this.authenticate(token)
  
  try 
    const response = await fetch(`https://graph.facebook.com/v2.9/id/friends?access_token=$token`);
    console.log(await response.json())
   catch(error) 
    console.error(error);
  

【问题讨论】:

hmmm 它抛出一个错误 "line":1324,"column":94,"sourceURL":"....=false&minify=false&hot=false&assetPlugin=expo/tools/hashAssetFiles" 我需要将 try catch 放在“if”语句中才能访问 id 【参考方案1】:

让我们定义你自己的格式化字符串函数并将你的try catch移动到if表达式中

String.format = function() 
    // The string containing the format items (e.g. "0")
    // will and always has to be the first argument.
    var theString = arguments[0];
    
    // start with the second argument (i = 1)
    for (var i = 1; i < arguments.length; i++) 
        // "gm" = RegEx options for Global search (more than one instance)
        // and for Multiline search
        var regEx = new RegExp("\\" + (i - 1) + "\\", "gm");
        theString = theString.replace(regEx, arguments[i]);
    
    
    return theString;

console.log(String.format('https://graph.facebook.com/v2.9/0/friends?access_token=$1', id, token))

【讨论】:

我用代码更新了帖子。请让我知道您是否可以确定问题或代码是否以任何方式冗余 String.format('graph.facebook.com/v2.90/friends?access_token=$1', id, token) 不起作用? 由于某种原因,Try Catch 中的 id 不可用,但令牌可用? 响应成功时似乎只有user.id。让我们尝试将 try catch 移入 if 表达式 是的,这就是问题所在。如果您更新答案以反映代码,我会将其标记为答案。

以上是关于我如何在javascript中向url请求添加变量,更具体地说,expo和react native的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Django 模板在 HTML 表单操作中向“current_url”/submit 提交 POST 请求?

如何在 Javascript 中向 btn.innerHTML 添加函数?

如何在 RestSharp 中向请求正文添加文本

如何在 SQLite 中向表中添加变量?

如何在 jQuery $.ajax() 发布请求中向 MVC 控制器方法发送模型

如何在 Scala 中向数组添加元素并查找变量类型?