【问题标题】:assignmentId not visible in MTurk accept URLassignmentId 在 MTurk 接受 URL 中不可见
【发布时间】:2014-08-14 02:27:13
【问题描述】:

我设法使用 iframe(外部问题)将我的外部 html 页面嵌入到 mturk-hit 中。

如果工作人员接受我的 HIT,则生成的 URL 是:

https://workersandbox.mturk.com/mturk/return?groupId=260LVCNHMVHY0UMXMCB2A4K8CRQ20A&requesterId=A165LMPFHNTKFG&hitId=3180JW2OT5IAV9ZKJ6GHA2GH8KXJ51&signature=hAyO0wvGxW%2BX3Kewgv%2F2%2FhyloSI%3D&externalHit=true&canAccept=

如何从 URL 中获取 assignmentId 以便在我的表单中使用它进行提交?

这是我的表格:

<form name='mturk_form' method='post' id='mturk_form' action='https://workersandbox.mturk.com/mturk/externalSubmit'> <!- For real submit use : https://www.mturk.com/mturk/externalSubmit-->
<input type='hidden' value='' name='assignmentId' id='here the assignmentId from the url should be inserted'/>
<h1>What's up?</h1>
<p><textarea name='comment' cols='80' rows='3'></textarea></p>
<p><input type='submit' id='submitButton' value='Submit' /></p>
</form>

【问题讨论】:

    标签: url amazon-web-services mechanicalturk


    【解决方案1】:

    您需要向 ExternalHIT HTML 添加一些 javascript,以便从其自己的 URL 中提取参数:

    function turkGetParam( name ) { 
        var regexS = "[\?&]"+name+"=([^&#]*)"; 
        var regex = new RegExp( regexS ); 
        var tmpURL = fullurl; 
        var results = regex.exec( tmpURL ); 
        if( results == null ) { 
            return ""; 
        } else { 
            return results[1];    
        } 
    }
    
    // ASSIGNS THE URL PARAMETERS TO JAVASCRIPT VARIABLES
    var assign = turkGetParam('assignmentId');
    var hit = turkGetParam('hitId');
    var worker = turkGetParam('workerId');
    

    然后,您可以使用 assign 变量做任何您想做的事情(例如,打印到页面并写入表单字段等)。

    【讨论】:

    • 嗨,托马斯!非常感谢!哇,这很容易,我想,我只是不再喜欢这些正则表达式了......:/如果我可以问你另一个问题:如果我现在提交这个表格,我会得到这个“著名” 消息...你知道我做错了什么吗?
    • @user3494275 嗯...通常问题是您没有发送 assignmentId,您需要在提交中包含至少一个其他非空白表单字段,或者分配有过期了。
    • 好吧,我包括了 assignmentId(正如您在第一篇文章中的表格中看到的那样),并且任务还没有过期......你是什么意思“至少一个其他非空白表单域”?你能举个例子(关于我的表格)吗?
    • @user3494275 如果您尝试仅发回 assignmentId,MTurk 会抱怨。因此,如果您输入类似&lt;input type='hidden' value='bar' name='foo'&gt; 的内容,可能会解决问题。
    • 我已经试过了(另外还有workerId、hitId和一个“dummy”)..同样的错误...... :(
    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 2014-04-28
    相关资源
    最近更新 更多