未捕获的类型错误:无法读取未定义的属性“authenticateClientAndRetrieveSessionId”

Posted

技术标签:

【中文标题】未捕获的类型错误:无法读取未定义的属性“authenticateClientAndRetrieveSessionId”【英文标题】:Uncaught TypeError: Cannot read property 'authenticateClientAndRetrieveSessionId' of undefined 【发布时间】:2021-05-27 12:10:47 【问题描述】:

我正在使用带有 Vuetify 框架的 Vue.js。我需要使用带有位置地址字段的表单。当用户开始输入地名时,该字段必须建议位置地址列表。 最终目标是在 Vue js 框架上实现如下所示:https://www.bing.com/api/maps/sdk/mapcontrol/isdk/autosuggestuiwithoutmap#JS

 <template>
 <v-app>
    <div id="searchBoxContainer">
      <v-text-field
        id="searchBox"
        v-model="startlocation"
        label="Start Location"
        prepend-inner-icon="mdi-map-marker"
        outlined
        rounded
        dense
      ></v-text-field>
    </div>
  </v-app>
</template>
<script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?key=[bing-map apikey]'></script>
 metaInfo () 
      return 
        script: [
          src: `https://www.bing.com/api/maps/mapcontrol?key=[bing_map apikey]`,
          async: true,
          defer: true,
          callback: () => this.loadMapScenario() // will declare it in methods
        ]
      
    ,
  methods: 
    loadMapScenario() 
       Microsoft.Maps.loadModule("Microsoft.Maps.AutoSuggest", 
      callback: () => 
        var options =  maxResults: 5 ;
        var manager = new Microsoft.Maps.AutosuggestManager(options);
        manager.attachAutosuggest("#searchBox", "#searchBoxContainer");
      ,
    );
    , 

【问题讨论】:

【参考方案1】:

我找到了解决办法!

我使用了here 共享的 sn-p,我的代码现在看起来像这样:

function GetMap() 
                Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', 
                    callback: onLoad,
                    errorCallback: onError
                );
                function onLoad() 
                    var options =  maxResults: 5 ;
                    var manager = new Microsoft.Maps.AutosuggestManager(options);
                    manager.attachAutosuggest('#search_78', '#header-search', selectedSuggestion);
                
                function onError(message) 
                    document.getElementById('printoutPanel').innerhtml = message;
                
                function selectedSuggestion(suggestionResult) 
                    document.getElementById('printoutPanel').innerHTML =
                        'Suggestion: ' + suggestionResult.formattedSuggestion +
                            '<br> Lat: ' + suggestionResult.location.latitude +
                            '<br> Lon: ' + suggestionResult.location.longitude;
                
                
            

返回我的页面后,错误发生了变化,它说我的凭据无效,并将我重定向到https://www.bingmapsportal.com/Application,我可以在其中创建一个有效的密钥。使用该密钥解决了问题,现在我可以看到建议的地址表单。

【讨论】:

以上是关于未捕获的类型错误:无法读取未定义的属性“authenticateClientAndRetrieveSessionId”的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误:无法读取未定义的属性 toLowerCase

JQuery:未捕获的类型错误:无法读取未定义的属性“调用”

NextJS:未捕获的类型错误:无法读取未定义的属性(读取“属性”)

未捕获的类型错误:无法读取文本字段上未定义错误的属性“toLowerCase”

为啥我会收到“未捕获的类型错误:无法读取未定义的属性 'body'”?

反应和流星“未捕获的类型错误:无法读取未定义的属性'createElement'”