我试图在我的网站上使用AWS cloudSearch,但缺少一些基本知识。我没有找到一个可行的例子的运气。

在我的HTML头中,我包含了SDK。每个:http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/browser-intro.html

<script type="text/javascript" src="https://sdk.amazonaws.com/js/aws-sdk-2.0.31.min.js"></script>


然后在我的脚本标签中有此代码段(带有我的信用,而不是此处显示的信用)。我对每个测试使用了硬编码的凭据:http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/browser-configuring.html

var s3 = new AWS.S3({region: 'ap-southeast-2', maxRetries: 15});
AWS.config.update({accessKeyId: 'akid', secretAccessKey: 'secret'});
console.log(AWS);
//
var cloudsearch = new AWS.CloudSearch();


当它尝试执行最后一行时,javaScript告诉我:未捕获的TypeError:undefined不是函数

我一直找不到演示,示例或教程。这些文档甚至没有可用的示例。

你能帮我吗?

感谢您的时间。

最佳答案

该错误表示您在调用新的AWS.Cloudsearch()时找不到对cloudsearch的引用。

您引用的The script似乎没有对cloudsearch api的引用。我认为您需要像在Building the SDK for Use in the Browser中指定的那样进行构建。

对于踢球,我复制了您收到的错误,然后按照上面的链接指定了浏览器构建方式。有效。

经过进一步调查后翻阅了图书馆。我认为您可能想使用CloudSearchDomain向cloudsearch中的给定域设置发出搜索。

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudSearchDomain.html

另一个cloudsearch库是与Search域创建和其他管理类型的对象相关的所有管理/设置。总体上来说,cloudsearch的CORS /设置似乎存在一些问题,因此,如果您想直接从浏览器发出此消息,可能会有些棘手。

解决CORS问题的最常见方法是使用代理。

从浏览器\本地进行搜索的最简单方法是使用表单,如此处建议的那样。

Amazon CloudSearch query

<form action="https://$YOURSEARCHDOMAIN/2013-01-01/search" method="get">
    <label>Search: <input name="q" /></label>
    <input type="hidden" name="q.parser" value="simple" />
    <button type="submit">Search</button>
</form>


上面的解决方案几乎是剪切/粘贴/播放,类似于AWS cloudsearch控制台,并将json返回到浏览器。不知道是否可以在没有API的情况下直接合并建议。我相信,您将需要打开访问策略才能发挥作用。

我尝试了各种访问策略和各种技巧来解决CORS问题,但都没有问题。

您实际上需要chrome的CORS插件才能使其正常工作。

10-07 14:37