javascript - 尝试从 ajax 或浏览器调用 azure 搜索的自定义搜索分析器时出现 CORS 策略错误
问题描述
尝试从 ajax 或浏览器调用 azure 搜索的自定义搜索分析器时出现 CORS 策略错误
我在 azure 帐户上启用了 azure 搜索服务。尝试使用来自客户端调用或 ajax 的 azure search 搜索查询,这非常顺利。我有一些要求在搜索实际搜索文本之前分析搜索查询,所以我创建了一个自定义分析器,当我尝试从浏览器或 ajax 调用时,我在浏览器上收到 CORS 策略错误。
已经尝试过:我已经为索引启用了 CORS,我在其中创建了自定义分析器我使用了 npm 库,该库是 azure-search.min.js,具有调用分析器(client.testAnalyzer)的功能:https://www.npmjs .com/package/azure-search-client
//Sample 1:
var index2 = AzureSearch({
url: k2,
key: k1,
version: "2019-05-06"
});
var analyzerdata = {
"text": searchTextData,
"analyzer": sessionStorage.getItem('analyz')
}
index2.testAnalyzer("fastampsearchindex", analyzerdata, function (err,
tokens) {
if (!isNullorEmpty(tokens)) {
//phrases = data.map(x=>x.token);
}
});
//Sample 2:
var urlTokenizer="https://mysearchurl.search.windows.net/indexes/indexname/analyze?api-version=2019-05-06";
var analyzerdata = {
"text": searchTextData,
"analyzer": sessionStorage.getItem('analyz')
}
$.ajax({
type: "POST",
url: url2,
dataType: 'json',
crossDomain:true,
data: analyzerdata,
headers: {
"api-key": k1,
"Content-Type":"application/json"
},
success: function (response) {
console.log(response);
},
error: function (xhr, status, message) {
$('.loader').css('display', 'none');
var err = "Error " + " " + message;
if (xhr.responseText && xhr.responseText[0] == "{")
err = JSON.parse(xhr.responseText).Message;
toastr.warning(err);
}
});
应从浏览器而不是应用程序调用分析器,以避免通过托管应用程序的 Web 应用程序服务往返于 azure 搜索服务
解决方案
推荐阅读
- json - 如何用 Json.dump 覆盖?
- hql - 用变量替换 HQL 子查询
- python-3.x - 在其他文本中显示来自 tkinter 文本的文本
- javascript - 如何根据另一个输入文本字段的特定值更改一个输入文本字段的值
- php - Google chrome 在我的 yii2 应用程序中从 https 重定向到 http
- linux - 将文件夹添加到监视目录时不会触发 inotifywait close_write
- python - 失败的前提条件:Python 解释器状态未初始化。该过程可能会终止
- java - 如何在生产服务器中将 LocalTime 转换为 UTC 时间?
- php - 在 Laravel 中安装时出现 joedixon/laravel 翻译错误:不支持的操作数类型
- visual-studio-2019 - 使用 Visual Studio 的 Excel Web 加载项自定义函数