首页 > 解决方案 > 用于简单 GET 请求的 Javascript 函数(在 URL 中带有变量信息)

问题描述

情况如下:

  1. 一个有两个输入的网页;input_1input_2
  2. input_1是用户输入的代码
  3. input_2更像是一个令牌字符串,预先填写或由用户填写
  4. 请求的 URL 格式GET如下:https://www.apiserver.com/api/v1/static_param_1/input_1/tokens/redeem?token=input_2

该网页有一个表单,其中包括一个 element_id 为 的按钮button_1、两个具有元素 idelem_input_1和的文本元素elem_input_2

我需要使用 javascript 创建 GET 请求,当用户输入值并单击按钮时会触发该请求。

到目前为止,我尝试了以下方法。非常感谢任何帮助:

var button = document.getElementById('button_1');

function executeGetReq() { 
  var input_1 = document.getElementById('elem_input_1').value;
  var input_2 = document.getElementById('elem_input_2').value;

  var url = "https://www.apiserver.com/api/v1/static_param_1/" + input_1 + "/tokens/redeem"

  var data = {
    token: input_2,
  };
  $.get(url, data, function (result) {
    if (result == 'ok')
      alert('Success!');
    else
      alert('Failure');
  });
}

button.onclick = executeGetReq;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="elem_input_1" value="input_1"/>
<input id="elem_input_2" value="input_2"/>
<button id="button_1">Go</button>

编辑:

好吧,看来问题出在CORS上。还在挖。

标签: javascriptformsget

解决方案


尝试将 dataType 设置为jsonp(但在将其设置为 之前json)。

$.get(url, data, function (result) {
    //...
}, 'jsonp');

如果它不起作用,请在网络上搜索 ajax cors。

或者看看https://www.codegrepper.com/code-examples/javascript/ajax+cors+error


推荐阅读