我正在研究一个Google Maps api项目,用户在该项目中提交一个表单来向地图添加一个点。在大多数情况下,它都有效,但是当我在他的朋友身上进行一次朋友测试时,它就可以在Safari浏览器安全环境中工作,但在不安全的Safari浏览器环境中却不起作用(对我而言,在safari上的作品也不安全)。它不会在提交时引发错误,只需将其从发布更改为获取请求即可。提交事件如下所示。
''' //监听器提交新的字段/标记 document.getElementById('submit')。addEventListener('click',async e => {
//Set values to an objest
const data = {
fieldName: fieldName.value,sport: sport.value,description: description.value,lat: new_marker_lat,lon: new_marker_lng
};
//Set options to submit to api
const options = {
method: 'POST',headers: {
'Content-Type': 'application/json'
},body: JSON.stringify(data),};
//Check inputs value to see if they are filled in
if (fieldName !== '') {
try {
await fetch('/field_api/',options);
} catch (error) {
console.log('error');
}
};
//Hide form
new_marker_form.style.display = 'none';
map_display.style.display = 'block';
// Function fetches via GET and loads all markers
getData();
//Clear values from inputs
fieldName.value = '';
sport.value = '';
e.preventDefault();
}); '''
我似乎无法弄清不一致之处。我尝试按照此处https://serverfault.com/questions/434205/nginx-https-rewrite-turns-post-to-get
的说明使用“ / fetch_api”与“ / fetch_api /”进行发布项目已部署在此处https://sports-field-app.herokuapp.com/ 我的github上的完整项目在这里https://github.com/dhaef/field_app