Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .getJSON-won';不执行输入_Javascript_Jquery_Json_Navigator - Fatal编程技术网

Javascript .getJSON-won';不执行输入

Javascript .getJSON-won';不执行输入,javascript,jquery,json,navigator,Javascript,Jquery,Json,Navigator,我有两个部分 在第一部分,我想从用户那里获取位置输入。这就是.getJSON不执行的地方 在第二部分中,我检查地理位置是否与浏览器兼容,以及是否授予了权限,.getJSON将执行。这个很好用 我不认为if(navigator.geolocation)检查是否授予了权限,只认为geolocation与浏览器兼容 第1节$.getJSON(地址、函数(数据)中的这一行的执行方式与第2节中的不同。如果我将`console.log(地址)放在它前面,它会显示出来,但在.getJSON范围内它不会显示

我有两个部分

  • 第一部分,我想从用户那里获取位置输入。这就是.getJSON不执行的地方
  • 第二部分中,我检查地理位置是否与浏览器兼容,以及是否授予了权限,.getJSON将执行。这个很好用
我不认为
if(navigator.geolocation)
检查是否授予了权限,只认为geolocation与浏览器兼容

第1节
$.getJSON(地址、函数(数据)
中的这一行的执行方式与第2节中的不同。如果我将`console.log(地址)放在它前面,它会显示出来,但在.getJSON范围内它不会显示出来

由于功能相同,对正在发生的事情感到困惑

$(document).ready(function() {
  //GET STUFF FUNCTION
  function getStuff(address) {
    api = address; //**EDIT** changed to address
    console.log("clicking or entering works yes");
    $.getJSON(api, function(data) {
      console.log("yay it works");
    });
  };
  // SECTION 1
  $("#searchForm").submit(function(e) {
    var searchInput = $("#searchInput").val();
    var address = "api.openweathermap.org/data/2.5/weather?q=" + searchInput + "&appid=?";

    e.preventDefault();
    getStuff(address);

  });

  $("#searchInput").keypress(function(e) {
    if (e.which == 13) {
      $("#searchBtn").click();
    };
  });

  //SECTION 2
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      lat = position.coords.latitude;
      lon = position.coords.longitude;

      var address = 'http://api.openweathermap.org/data/2.5/weather?lat=' + lat + '&lon=' + lon + '&appid=?';

      //tried to use this function for search
      getStuff(address);
    });
我尽了最大努力缩小了这个范围,但我不确定如何在小提琴上执行AJAX请求。 编辑:更新


谢谢大家,在第1节和第2节中,您可以设置地址,然后在此
GetStuff
函数中调用
GetStuff
,而不是引用
api

GetStuff
函数更改为以下内容:

function getStuff(address) {
 api = address == null ? "/echo/JSON/" : address;
 console.log("clicking or entering works yes");
 $.getJSON(api, function(data) {
  console.log("yay it works");
 });
};

如果将
api
设置为“/echo/JSON/,首先检查地址是否为空否则,将
api
设置为
address
值。

为什么一个URL有http://而另一个没有呢?谢谢!这就是问题所在,我非常尴尬,但谢谢我的错误,我之前试图让AJAX请求与fiddle一起工作,它被设置为address,输入部分仍然不工作,但是avigator部分解决了这个问题,我的url出现了一个非常简单的语法错误,我没有在地址前添加
http://
。感谢您向我展示/echo/JSON/的工作原理。