assignmentId在MTurk接受URL中不可见

assignmentId在MTurk接受URL中不可见,url,amazon-web-services,mechanicalturk,Url,Amazon Web Services,Mechanicalturk,我设法使用iframe(外部问题)将我的外部html页面嵌入到mturk命中中 如果工作人员接受我的点击,则生成的URL为: 如何从URL中获取分配ID,以便在提交表单中使用它 这是我的表格: <form name='mturk_form' method='post' id='mturk_form' action='https://workersandbox.mturk.com/mturk/externalSubmit'> <!- For real submit use :

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

如果工作人员接受我的点击,则生成的URL为:

如何从URL中获取
分配ID
,以便在提交表单中使用它

这是我的表格:

<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>

怎么了?


您需要将一些javascript添加到ExternalHIT HTML中,该HTML将从自己的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 MTurk抱怨如果你只想发回
assignmentId
。因此,如果您输入类似于
的内容,这可能会解决问题。。同样的错误…:(