【发布时间】:2021-04-19 05:47:56
【问题描述】:
我正在尝试在 API 中发送我的汽车价值,该值来自下面的 html。
然后,我想使用 AJAX 在 API 中发送这个值。
然后我想像展示汽车一样展示所有模型。
$(document).ready(function() {
$('#cars').on('change', function() {
$.ajax({
'url': 'https://us-central1-pitstop-8258d.cloudfunctions.net/models',
'type': 'GET',
'dataType': 'json',
'data': {
'make': $('#cars').val()
},
'success': function(response) {
if (response.results) {
var html = '';
html += '<select name="cars2" id="cars2">';
for (var i = 0; i < response.results.length; i++) {
html += '<option value="' + response.results[i] + '">' + response.results[i] + '</option>';
}
html += '</select>';
$('#results').html(html);
}
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<select name="cars" id="cars">
<option value="Acura">Acura</option>
<option value="Audi">Audi</option>
<option value="BMW">BMW</option>
<option value="Tesla">Tesla</option>
</select>
<div id="results"></div>
【问题讨论】:
-
那么什么在这里不起作用?
-
除了未能正确转义 HTML 之外,它似乎按预期工作(假设 API 以您期望的格式返回结果,并且您的 HTML 有一个带有
id="results"的元素),那么什么是问题?你只写了你想做的事情,而不是你在做的时候真正需要帮助的东西。 -
在我编辑了您的帖子以便可以直接从中运行代码之后,问题所在就变得很清楚了。检查浏览器的控制台,您将看到消息
Access to XMLHttpRequest at 'https://us-central1-pitstop-8258d.cloudfunctions.net/models?make=Audi' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.,因此您无法直接从前端 JavaScript 访问此 API,您需要从后端服务器代码访问它。 (另外,您可能应该添加$('#cars').change(),这样它也会开始加载。) -
请编辑您的问题以包含更多详细信息 - 什么有效,什么无效?您究竟在哪里寻求帮助?您尝试过什么来解决您面临的任何问题?
标签: javascript jquery json ajax